1

我已经搜索过我的具体问题的答案,但找不到匹配的答案。我理解这一点,return 0并且return EXIT_SUCCESS基本上做同样的事情,说程序成功结束,但是如果你这样做return 1return 2其他任何 int 值怎么办?不同的 int 值对编译器意味着不同的事情,或者返回任何 int 仅仅意味着程序成功终止,在这种情况下,输入什么 int 值并不重要?据我(有限的)知识,似乎int main()只需要返回任何 int 即可终止。我错了吗?

谢谢,如果之前有人问过这个问题,我很抱歉,我只是找不到它。

4

2 回答 2

0

来自:http ://en.wikipedia.org/wiki/Exit_status

“返回的特定代码集对于设置它的程序是唯一的。通常它表示成功或失败。函数或程序返回的代码的值可能表示失败的特定原因。在许多系统上,值越高,错误的原因越严重。[1] 或者,每个位可能表示不同的条件,然后将它们组合在一起以给出最终值;例如,fsck 就是这样做的。

也就是说 - 0 或者EXIT_SUCCESS表示程序运行成功。其他值(包括EXIT_FAILURE)用于指示失败。每个单独的程序可以选择使用不同的程序定义代码来指示不同的失败原因。

于 2013-07-10T22:00:08.173 回答
0

这很重要。如果它以0or的状态退出EXIT_SUCCESS,那么您知道您的程序正确到达了 main 函数的末尾(或被exit(0)调用)。但是,您可以使用exit(1)return 1在程序中的任何位置停止程序,当它到达不应该到达的地方时,这意味着您遇到了错误。

不同的数字可以用来标识不同的错误,所以你可能知道程序退出的确切位置,但是为了成功退出,你应该返回0EXIT_SUCCESS

于 2013-07-10T22:05:18.907 回答