main()在C和C++中定义函数的正确(最有效)方法是什么- int main()或void main()- 为什么?如果int main()那么return 1或return 0?
这个问题有很多重复,包括:
main()函数的有效签名是什么?main()函数void main()和int main()?main()在C++中的签名main()? - 对于C++,确实有一个非常好的答案.main()C语言中的函数样式main()C中的方法类型int main()vs void main()在C中有关:
只是想知道为什么这样
int main(void){}
Run Code Online (Sandbox Code Playgroud)
编译和链接
这样做:
int main(int argc, char **argv){}
Run Code Online (Sandbox Code Playgroud)
为什么不需要一个或另一个?
gcc甚至会编译并链接一个参数:
int main(int argc){}
Run Code Online (Sandbox Code Playgroud)
但是用-Wall发出这个警告:
smallest_1.5.c:3:1: warning: ‘main’ takes only zero or two arguments [-Wmain]
Run Code Online (Sandbox Code Playgroud)
我不是在问"他们怎么允许这个?" 但正如"调用者和链接器如何处理主要的多种可能性?"