我什么时候应该用'return 0'结束一个C++程序?

Rad*_*cus 5 c++ program-entry-point return

我是C++的新手,我正在读一本名为Big C++的书.在本书中,我到目前为止看到的所有示例程序都return 0;在最终结束之前结束}.我显然可以让C++程序return 0;在最后运行,所以我想知道它的用途是什么.我熟悉从java中的方法返回一些东西,但我不明白为什么int main()需要在C++中返回0.为了得到更多关键点:我是否应该总是main()return 0;C++ 结束?如果没有,我什么时候需要,什么时候不应该?什么return 0;告诉程序要做什么?

在一个相关的问题中,我假设C++中的main()正在设置main函数,就像java中的main方法一样.那是对的吗?为什么main方法被声明为整数?那是在发生什么int main() {

Jig*_*shi 9

表示应用程序的退出代码,

例如,如果您通过某些脚本启动它并且他们想确定程序是否正常终止退出代码应该是0,非零意味着某种类型的错误

谈到Java

如果你已指定int为返回类型,则必须返回,否则它将无法编译,如果为void类型,则为零,除非从jvm抛出异常

  • 不,'main`有一个例外(注意问题标记为C++) (5认同)

Die*_*ühl 7

原则上,任何返回不同内容的函数void都必须使用return语句退出(除非抛出异常):从函数的末尾开始返回其他内容而不是void导致未定义的行为.

C++的好处是,有许多例外一般规则:你可以掉下来结束main()它的行为等同于使用return EXIT_SUCCESS;这又是相同的return 0;.据我所知,这个特殊规则的原因来自C和C++的遥远历史(虽然我没有任何关于此的引用的陈述).总之,虽然您不需要返回任何main()使用合适的return语句的内容更加一致.在将代码放在幻灯片上进行演示时,我倾向于省略它,但在实际程序中,我总是包含一个return语句.

顺便说一句,如果你想表明一个C++程序失败了,你应该返回EXIT_FAILURE哪个除了EXIT_SUCCESS保证工作的唯一其他值.在实践中,其他返回代码也有效,但没有任何保证.