程序编译有和没有返回0

时间:2010-07-31 21:24:31

标签: c++ return statements

  

可能重复:
  What should main() return in C/C++?

这是一个非常基本的问题,我想。

我已经编程了一年了,但我的一个朋友给我一个相当惊人的问题让我感到惊讶。

在C ++上以'int main()'开头的程序似乎即使使用'return 0;'也能完美编译已删除,未被任何其他退货声明替换。如果没有return语句,程序仍会显示“Process返回0”。

这有什么解释吗? 对不起,如果我的问题很愚蠢!

2 个答案:

答案 0 :(得分:5)

§3.6.1/ 5:

  

main中的return语句具有离开main函数(销毁具有自动存储持续时间的任何对象)并以返回值作为参数调用exit的效果。如果控制到达main的末尾而没有遇到return语句,则效果就是执行   return 0;

答案 1 :(得分:1)

来自What should main() return in C/C++?

的接受答案
  

值得注意的是,在C ++中,int main()可以不带返回值,此时默认返回0.对于C99程序也是如此。是否应该省略返回0是值得商榷的。