在编写C/C++程序时,特别是使用最新的编译器时,为什么需要从main()方法返回一个整数?例如:int main() 并且我们从中返回 "return 0"。那么,这背后的确切原因是什么呢?
main()的返回值成为进程的退出状态。传统上,退出状态为零通常表示“OK”,而任何非零值表示某种错误。 这类似于许多系统调用同样返回零或错误代码。
更多信息可以参考J. Leffler对这个类似问题的史诗般的回答:C和C ++中main()应该返回什么?
main()
被声明为int main()
。操作系统期望返回一个整数,这样它就知道下一步该怎么做,特别是如果另一个程序或脚本调用了你的程序。0
表示“没有错误”。其他任何值都表示发生了错误。main()
函数返回的整数值(如果有的话)是程序返回给“系统”的值。从main()
函数返回0表示成功,非零值表示失败。如果没有返回值,系统将接收到一个表明成功完成的值。
该指令会向操作系统返回0,表示您的程序已成功执行。
main()
函数返回零或EXIT_SUCCESS会返回一个实现定义的状态码,表示成功终止。换句话说,这个特定的值表明了成功。
return EXIT_SUCCESS
或EXIT_FAILURE
返回,并使用这些值调用exit,例如exit(EXIT_FAILURE);
。如果子进程的终止状态失败,则父进程可能需要执行一些清理工作。 - Grijesh Chauhan