【问题标题】:Returning different int values for main() [duplicate]为 main() 返回不同的 int 值 [重复]
【发布时间】:2013-07-10 21:55:38
【问题描述】:
我已搜索找到特定问题的答案,但找不到匹配的答案。我知道return 0 和return EXIT_SUCCESS 本质上说程序成功结束是一样的,但是如果你这样做return 1 或return 2 或任何其他int 值呢?不同的 int 值对编译器意味着不同的事情,或者返回任何 int 仅仅意味着程序成功终止,在这种情况下,输入什么 int 值并不重要?据我(有限的)知识,int main() 似乎只需要返回任何 int 即可终止。我错了吗?
谢谢,如果之前有人问过这个问题,我很抱歉,我只是找不到它。
【问题讨论】:
-
看看this,它解释得很好。无论您是否返回0,程序都会终止,返回值仅用于破译您的程序如何终止(成功/不成功以及原因,参见this)
-
标签:
c++
return-value
main
【解决方案1】:
发件人:http://en.wikipedia.org/wiki/Exit_status
“返回的特定代码集对于设置它的程序是唯一的。通常它表示成功或失败。函数或程序返回的代码值可能表示失败的特定原因。在许多系统上,值越高,错误原因越严重。[1] 或者,每个位可能表示不同的条件,然后将它们组合在一起以给出最终值;例如,fsck 就是这样做的。"
换句话说 - 0 或EXIT_SUCCESS 表示程序运行成功。其他值(包括EXIT_FAILURE)用于指示失败。每个单独的程序可以选择使用不同的程序定义代码来指示不同的失败原因。
【解决方案2】:
这很重要。如果它以0 或EXIT_SUCCESS 的状态退出,那么您知道您的程序正确地到达了主函数的末尾(或调用了exit(0))。但是,您可以在程序中的任何位置使用exit(1) 或return 1 来停止程序,当它到达不应该出现的地方时,这意味着您遇到了错误。
不同的数字可以用来识别不同的错误,所以你可能知道程序退出的确切位置,但为了成功退出,你应该返回0或EXIT_SUCCESS。