C语言:main函数必须放在其他函数之前为什么不对?
main函数不是必须放在其他函数之前,也就是说可以放在其他函数的上面,下面,都可以。
编译器编译时,是逐行编译的。但是它是先找到主函数,主函数编译完也表明这个程序已经编译完了。如果主函数放在其他函数之前,那么在主函数中要调用的子函数(自定义函数)要先在主函数之前声明它的存在。如:void fun(int n,int m);
在多数编程语言里,变量、函数(过程)、结构体、类、对象等都是必须先声明(或在使用它之前定义)后使用。未声明或未在使用它的函数之前定义的,编译都无法通过。而且会报错:未定义的变量或函数等.
扩展资料:
main函数,又称主函数,是程序执行的起点。C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程序运行的入口。
其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用的是有参函数,则参数在调用时传递。
int main(void)//整数类型 主函数(无类型)
{
...
y1=f1(x1,x2);//赋值过程
...
}
f1(int a,int b)//f1(整数类型 a,整数类型 b)
{
//百度百科示例代码.....
Y2=f2(x3,x4);//赋值过程
//百度百科示例代码
}
f2(int m,int n)//f2(整数类型 m,整数类型 n)
{
//百度百科示例代码
参考资料来源:百度百科-main函数
编译器编译时,是逐行编译的。但是它是先找到主函数,主函数编译完也表明这个程序已经编译完了。如果主函数放在其他函数之前,那么在主函数中要调用的子函数(自定义函数)要先在主函数之前声明它的存在。如:void fun(int n,int m);
在多数编程语言里,变量、函数(过程)、结构体、类、对象等都是必须先声明(或在使用它之前定义)后使用。未声明或未在使用它的函数之前定义的,编译都无法通过。而且会报错:未定义的变量或函数等!
c语言的语法没有规定main函数必须放在其他函数之前。但不论main函数在整个程序中的位置如何,程序总是从main函数开始执行的。而放在main函数前面的函数一般都是调用函数,只有等到要调用时才会执行。所以函数与函数之间位置是没有先后顺序的,但执行时是有先后顺序的。
期间可以插入运行其他函数。
所以你问题的答案是不对的。
如果main函数在前,其他函数在后,由于系统运行到其他函数时不认识它,所以声明一下即可。
其它函数在main函数前,则无需声明,因为系统已经认识了其它函数。
为什么其它函数在main函数前,系统已经认识了其它函数了呢?还是因为其他函数在main函数前,又由于程序从main函数开始运行,所以其它函数根本不被运行,所以不用声明?O(∩_∩)O谢谢
理解正确!
2.如果自定义函数不声明直接定义,这时就必须把它放在main函数之前,不然系统不“认识”它,则没法在main中使用。
PS:把自定义函数编入头文件,到时候引用也是个不错的办法。