我已经搜索了特定问题的答案,但找不到匹配的答案。我知道return 0
和return EXIT_SUCCESS
本质上是说程序成功结束的,但如果你做return 1
或return 2
或任何其他int值呢?不同的int值对编译器来说意味着不同的东西吗?还是返回任何int都意味着程序成功终止,在这种情况下,输入什么int值无关紧要?据我(有限)所知,int main()
似乎只需要返回任何int即可终止。我错了吗?
谢谢,如果之前有人问我这个问题,我很抱歉,我就是找不到。
来源:http://en.wikipedia.org/wiki/Exit_status
"返回的特定代码集对于设置它的程序来说是唯一的。通常它表示成功或失败。函数或程序返回的代码值可能指示故障的特定原因。在许多系统上,值越高,错误的原因就越严重。[1] 可替换地,每个比特可以指示不同的条件,然后将它们一起存储以给出最终值;例如,fsck就是这样做的。"
换句话说,-0或EXIT_SUCCESS
表示程序已成功运行。其他值(包括EXIT_FAILURE
)用于指示故障。每个单独的程序可以可选地使用不同的程序定义代码来指示不同的故障原因。
这确实很重要。如果它以0
或EXIT_SUCCESS
的状态退出,那么您就知道您的程序正确地到达了主函数的末尾(或者调用了exit(0)
)。但是,您可以在程序中的任何时候使用exit(1)
或return 1
来停止程序,因为它去了不该去的地方,这意味着您出现了错误。
不同的数字可以用来识别不同的错误,因此您可能确切地知道程序退出的位置,但为了成功退出,您应该返回0
或EXIT_SUCCESS
。