为什么在C程序中从main()返回0?

时间:2014-02-01 06:27:39

标签: c++ c

编写C / C ++程序时,特别是最新的编译器,为什么我们需要从main()方法返回一个整数?像int main()一样,我们从它返回“return 0”。那背后的确切原因是什么?

5 个答案:

答案 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,则为     实现定义的状态成功终止的形式是     返回。

  

换句话说,具体值表示成功。