如果我在main中有while(1)循环,我是否需要返回值?

时间:2014-06-06 21:46:42

标签: c++ visual-studio-2012

简而言之,我使用Microsoft Visual Studio 2012,使用C ++编程。我的主要方法有while(1)重复一些代码,永远不会离开循环。

Microsoft Visual Studio允许我在没有main方法返回值的情况下进行编译,即使它已声明为int main(int argc, char** argv)。这是其他编译器的标准,还是仅仅是"功能" Microsoft Visual Studio?

我意识到我从来没有得到返回值的代码,但是我应该只返回0;最后呢?

2 个答案:

答案 0 :(得分:8)

按照标准,C ++中的main函数隐式返回0,即使其中没​​有return语句。


确切参考(来自n3797):3.6.1.5

  

main中的return语句具有离开main函数的效果(使用自动函数销毁任何对象)   存储持续时间)并以返回值作为参数调用std::exit。如果控制到达终点   在没有遇到return语句的情况下,效果是执行

     

return 0;

答案 1 :(得分:1)

return 0;语句可以从main中省略,即使其返回类型为int。它由C ++标准定义。在这种情况下,它默认返回0