(我正在使用Visual C ++ 2008)我总是听说main() 需要返回一个整数,但是在这里我没有放回return 0; 并编译0错误和0警告! 在调试窗口中,它表示程序已经退出代码0.如果此函数被命名为main()以外的任何东西,编译器会抱怨说'blah'必须返回一个值。 坚持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 ++中的一个错误吗?

===============>>#1 票数:72 已采纳

3.6.1主要功能

....

2实现不应预定义main功能。 此功能不应过载。 它应该具有int类型的返回类型,否则其类型是实现定义的。 所有实现都应允许以下两个主要定义:

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

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

....并继续添加......

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

试图找到C ++标准的在线副本,所以我可以引用这篇文章, 我发现一篇博文,比我能更好地引用所有正确的位。

===============>>#2 票数:18

这是C ++语言标准的一部分。 如果main中没有显式的return语句,则会为您生成隐式返回0。

===============>>#3 票数:3

我很确定VC ++只是在主函数中不包含一个返回0。 功能也会发生同样的事情,但在这些情况下,至少你会收到警告。

===============>>#4 票数:2

第6.6.3 / 2节规定 - “从函数末尾流出相当于没有值的返回;这会导致值返回函数中的未定义行为。”

一个例子是下面的代码,最好在VS 2010 / g ++上发出警告

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

int main(){
   f();
}

所以重点是“主要”是特别的,正如先前的回应所指出的那样。

  ask by jeffythedragonslayer translate from so

未解决问题?本站智能推荐:

2回复

为main()返回不同的int值[重复]

这个问题已经在这里有了答案: main()在C和C ++中应该返回什么? 17个答案 我已经搜索过以找到特定问题的答案,但找不到匹配的答案。 我知道return 0和return EXIT_SUCCESS本质上是说程序成功结束,但是如果您return 1或ret
8回复

为什么我们需要在C ++中使用`int main`而不是`void main`? [重复]

这个问题在这里已有答案: main()应该在C和C ++中返回什么? 17个答案 为什么我们需要在C ++中使用int main而不是void main ?
2回复

什么可以覆盖main()的返回码?

我发生了一件相当奇怪的事情,我还没能坚持到底。 我有测试用例应该捕获错误并从main返回相应的错误代码,但/有时/在测试运行时程序返回0,即使错误代码非零。 抛出的异常类是: 测试用例代码是: 在此测试用例的许多运行中,一切都按预期工作:抛出exit_request(
17回复

main()在C和C ++中应该返回什么?

在C和C ++中定义main()函数的正确(最有效)方法是什么— int main()或void main() —为什么? 如果int main() return 1或return 0 ? 此问题有很多重复项,包括: C的main()函数的有效签名是什么? main(
9回复

我应该从main()返回EXIT_SUCCESS还是0?

这是一个简单的问题,但是我不断看到矛盾的答案:C ++程序的主例程应该返回0还是EXIT_SUCCESS ? 要么 他们是一回事吗? EXIT_SUCCESS应该仅与exit()一起使用吗? 我认为EXIT_SUCCESS会是一个更好的选择,因为其他软件可能希望将零视为失
5回复

在C / C ++中从main()返回值的目的是什么? [重复]

可能重复: main()函数返回值? main()应该在C / C ++中返回什么? 在C和C ++语言中从main()返回值的目的是什么? 返回值如何帮助我们? 可以使用返回值来实现重要的任何事情吗?
3回复

如何将变量从C ++中的一个函数返回给main然后在另一个函数中使用它?

好的,我有一个卡路里计算器,应该将其分解为包括以下主要功能的五个功能。 我的问题是,我得到一个编译器错误,因为一旦获得了其他函数,inputNumber函数和calculateCalories函数的变量就无法读取它们。 我不允许使用全局变量。 我必须缺少某些东西才能读取主函数中的变量,然后
2回复

转义函数以返回Main()

我正在编写的程序中几乎没有程序,但我陷入了困境。 在我的第一个迷你程序中,该程序重新排列数字以从这些数字中找到最大的数字,它询问用户是否要退出。 如果他们回答“是”,则该函数返回0,该值在main(string [] args)方法中求值。 我的问题是,只要用户说“否”,小程序仍然不会继续
2回复

使用int main(void)编译失败; main(int argc,char * argv [])成功。 为什么?

问题 如果编译具有int main(void) main函数的程序与编译具有int main(int argc, char *argv[]) main函数的程序为什么不使用在命令行上传递的参数,为什么会编译该程序? ? 该操作系统或编译器特定吗? 使用mingw和g ++不会得到相
1回复

由于int main()函数上的定义错误,C ++编译器拒绝了我的代码

我是C ++的新手,我正试图在我的学校为入学考试学习它,以便参加我想要的计算机科学课程。 我必须编写一个程序,该程序将创建一个数组并将其给我的值用于行和列。 该程序使用一个函数来查找最大的整数行之和。 在这一点上,我已经获得了代码,可以在其他在线编译器上返回正确的答案,但是用于测试的