【发布时间】:2020-11-08 15:59:27
【问题描述】:
#include<iostream>
using namespace std;
int main()
{
cout << "hello world";
}
我不应该收到编译器警告吗? return 0; 不存在。
【问题讨论】:
-
没有。
main是例外,它隐式返回 0。 -
^^。尽管如此,一些编译器确实警告控制是否可以到达
main()的右括号,但是这样的程序不会因此不符合标准,并且它们的行为不会受到影响(除非main()被递归调用并且调用者使用它的返回值)。 -
另外,请注意不要假设您的编译器会甚至可以警告您有关代码的所有潜在问题。他们不能也不会。他们甚至不需要诊断他们能够识别的所有问题。您收到什么警告以及如何获得它们是特定于实现的。
-
@JohnBollinger -- 在 C++ 中不允许递归调用
main,无论您如何处理返回值。
标签: c++ visual-studio