69,512
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
#include <stdio.h>
int fun(int x, int y)
{
if (x!=y) return ((x+y)/2);
else return (x);
}
int main()
{
int a = 4, b = 5, c = 6;
printf("%d\n", fun(2*a, fun(b, c)));
}
如果将 int main() 函数写在 int fun 前面,程序无法编译,会报错。
但是,考试中,问答到主函数应该是可以在任意位置的,有大神可以解答吗?
#include <stdio.h>
int main()
{
int a = 4, b = 5, c = 6;
printf("%d\n", fun(2*a, fun(b, c)));
}
int fun(int x, int y)
{
if (x!=y) return ((x+y)/2);
else return (x);
}
程序出错。
main函数的位置可以随意。因为正常程序里面不会有调用main函数的地方。
问题在于其他函数,写出来就是为了被调用的,那么被调用之前要么把它写出来,要么把它声明出来,这个不是很合理么?
所以楼主您关注的焦点有误,这个问题里您应该关注的是fun,而不是main
函数预定义或说明/声明,告诉编译器函数需要的参数和返回值状况,以便编译器进行调用匹配核对;标准库函数的使用就是这个方式。如:
int fun(int x, int y); // fun() pre-declaration 注意末尾有语句结束标记字符即英文分号
int main()
{
// main() code here
}
int fun(int x, int y)
{
// fun() code here
}