编写C / C ++程序时,特别是最新的编译器,为什么我们需要从main()方法返回一个整数?像int main()一样,我们从它返回“return 0”。那背后的确切原因是什么?
答案 0 :(得分:11)
main()的返回值成为进程的退出状态。传统上,退出状态为零通常意味着“OK”,而任何非零值都表示某种错误。这类似于有多少系统调用同样返回零或错误代码。
更多关于J. Leffler对此的史诗回答的信息,类似的问题:What should main() return in C and C++?
答案 1 :(得分:8)
正如您所说,main()
被声明为int main()
。操作系统需要一个整数,因此它知道下一步该做什么,特别是如果另一个程序或脚本调用了你的程序。 0
表示“没有错误”。其他任何意味着发生了错误。
答案 2 :(得分:4)
main()
返回的int值(如果有)是程序返回“系统”的值。 main()的零值表示成功。非零值表示失败。如果未返回任何值,系统将收到一个表示成功完成的值。
答案 3 :(得分:3)
它返回0到OS,告诉操作系统你的程序执行成功。
答案 4 :(得分:2)
请参阅Why default return value of main is 0 and not EXIT_SUCCESS?。
从
main()
返回零基本上与你的相同 问。从main()
返回零不必返回零 主持人环境。来自C90 / C99 / C ++ 98标准文件:
如果status的值为零或EXIT_SUCCESS,则为 实现定义的状态成功终止的形式是 返回。
换句话说,具体值表示成功。