2013-07-10 35 views
1

我已经搜索找到我的具体问题的答案,但找不到匹配的。据我所知,return 0return EXIT_SUCCESS实质上是说程序成功结束了,但如果你做return 1return 2或其他任何int值的话呢?不同的int值对编译器意味着什么不同,或者返回的任何int值只是表示程序成功终止,在这种情况下,输入的int值无关紧要吗?对于我的(有限的)知识,似乎int main()只是需要返回任何int来终止。我错了吗?返回不同的int值为主()

谢谢,我很抱歉,如果之前问过,我只是无法找到它。

+0

看看[this](http://stackoverflow.com/questions/204476/what-should-main-return-in-c-c),它解释得很好。无论您是否返回0,程序都会终止,返回值只是用来解释程序如何终止(成功/失败,为什么,请参阅[this](http://stackoverflow.com/questions/8626109) /我怎么能得到我的主要功能已返回) – wlyles

+0

嘿,这里是一个链接,解释一切。希望有所帮助 – Gabriel

回答

0

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

“的代码的返回的特定集合是唯一的,设置它的程序典型地,其指示成功或失败的由函数或程序返回的代码的值可以指示特定的原因。在许多系统中,数值越高,错误原因越严重[1]或者,每一位可能指示不同的条件,然后将它们一起存储以提供最终值;例如,fsck确实这个。”

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

0

它确实很重要。如果以0EXIT_SUCCESS的状态退出,那么您知道程序已正确到达主功能的末尾(或调用了exit(0))。但是,您可以在程序中的任何位置使用exit(1)return 1,以便在程序停止时它不应该存在,这意味着您有错误。

不同的数字可用于识别不同的错误,因此您可能确切知道程序退出的位置,但要成功退出,则应返回0EXIT_SUCCESS