C语言中,函数调用前是否必须需事先声明?

void main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("max=%d\n",max(a,b));
getch();
}
int max(int x,int y)
{
return (x>y?x:y);
}
上面这段程序,被调用函数在main函数后面,并没有声明,但用GCC和TC都可以正常编译执行,何解?是不是以后都不用考虑原型说明了?

这个程序可以这样分析,其实很简单,首先你要添加上去#include<stdio.h>这个头文件,其次你就这样记忆:要是main()函数在被调用函数的前面,也就是像你所说的这样情况的话,就必须在main()函数前面对被调用函数进行声明才可以正常调用函数,不然编译会出错的,
如果被调用函数出现在在了main()函数的上面,也就是mian()函数和你现在max函数位置调换一下,那么就不必对被调用函数进行声明了,直接调用就可以了。

这样的记忆比较清晰一点,我平时编程是将主函数写在最后,前面写被调用函数,这样就避免了忘记写函数声明而编译出错,希望我的解答能够帮助到你,
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-09
如果要掉用的函数定义在main函数之后,就要先声明函数。
如果定义在main函数之前,则不用。
例如:
1.第一种情况--不用
int max()
{
····
}
main()
{
····
}
2.第二种情况---用
main()
{
int max();
····
}
int max()
{
····
}
第2个回答  2010-08-09
那个不叫声明吧。。。只有vb中对api的调用才用声明这个词。。。

在c语言中这个叫头文件。。。

你是说#include<stdio.h>这个头文件没加也可以运行是吧。。。

假如一个程序只用到了stdio这个文件中的库函数。。。有些编译器是可以默认自动添加的。。。当然就可以通过编译了。。。
第3个回答  推荐于2016-02-06
稍微补充一点,虽然有些情况下函数没有声明一样可以使用,像你说的那样,但是一个优秀的程序员要严谨,养成良好的编程习惯,注意编程规范会使得你以后避免许多麻烦本回答被提问者采纳
第4个回答  2010-08-09
如果函数定义在前,可不申明
若果函数定义在后,必须申明
相似回答