C中 函数声明 要在main函数之前?

IDE是VC++6

很奇怪 函数放main前面就可以编译了 否则提示未声明的函数""

c语言编译器对于源代码的编译是顺序编译的,当你的任意一个函数中调用某个函数的时候,这个函数的原型必须在调用之前声明,否则就会出现编译错误,例如:
void a(int b)
{
printf("%d\n", b);
}

int main(int argc, char *argv)
{
a(10);
return 0;
}

以上的程序就没有问题,如果两个函数的位置倒一下,就会报错,解决办法是,将函数“a”的原型在main之前声明,如:
void a(int b);

int main(int argc, char *argv)
{
a(10);
return 0;
}

void a(int b)
{
printf("%d\n", b);
}

你可以这样试试。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-02-19
如果你在main之前定义,相当于有默认的一个声明。声明的意思就是函数的接口说明(参数,返回值类型),这样main函数编译时才能检查你调用的函数的接口是否和声明一致。
你可以声明多次,只要他们是一致的。
真正的函数定义只有在连接时才需要,编译时只需要声明就够了。
当然你要运行它的话,必须是编译之后并连接生成可执行文件。
第2个回答  2009-02-19
如果函数要在mian函数后面就要声明的,在mian前面就不用声明啦!这是规定的。
第3个回答  2009-02-19
函数之间存在调用和被调用关系.如果是定义在主调函数之前的,调用时可免申明.否则要在调用前申明.就这样,朋友.
相似回答