(我采用的视觉C++2008)我总是听说,主要()是 需要 到返回整数,但在这里我不放 return 0; 和它编制的0错误和0警告!在调试窗它说,该程序已经退出的代码0.如果这种功能是命名的任何其他主要()时,编译器抱怨说,'等等'必须返回的价值。坚持一 return; 还导致错误出现。但是,离开它完全,它汇编了就好了。

#include <iostream>
using namespace std;

int main()
{
    cout << "Hey look I'm supposed to return an int but I'm not gonna!\n";
}

这可能是一个错误在VC++?

有帮助吗?

解决方案

3.6.1主要功能

....

2实施不应预先定义的 main 功能。这种功能不应超载。它应当有一个回报类型的类型 int, 但另有其类型为执行定义。所有实现,应允许两个以下定义的主要:

int main() { /* ... */ }

int main(int argc, char* argv[]) {
/* ... */
}

....并且它继续增加...

5 return 在声明 main 有效果的主要功能(摧毁任何对象的自动存储持续时间),并呼 exit 与返回值的参数。 如果控制达到结束 main 而不会遇到返回的声明,其效果是,执行返回0;

试图找到一个网上复制的C++的标准,所以我可以引用这个通道 我找到了一个博客中,报价的所有权位比我更能。

其他提示

这是一部分C++语言的标准。一个隐含的返回0是产生于你如果没有明确的返回的声明,在主要的。

我敢肯定VC++只是插入一个返回0如果你不包括一个在主要职能。同样的事情可以发生的有功能太多,但在这些情况下至少你会得到一个警告。

第6.6.3/2国家"流动的关闭结束的一个功能等同于一个返回与没有价值;这一结果未定义的行为值返回的功能。".

一个例子是代码下面,在最好的给出了警告VS2010/g++

int f(){
   if(0){
      if(1)
         return true;
   }
}

int main(){
   f();
}

所以整个的一点是,'主要'是特别如先前的答复已经指出。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top