如果我编写如下程序,g++ 和 visual studio 会礼貌地警告我从未使用过局部变量 a:
int main()
{
int a; // An unused variable? Warning! Warning!
}
如果我删除未使用的变量(让编译器满意),它会留下以下程序:
int main()
{
// An empty main? That's fine.
}
现在,我只剩下一个无用的程序。
也许我遗漏了一些东西,但是,如果一个未使用的变量坏到足以引发警告,为什么一个空程序就可以了?
上面的例子非常简单。但在现实生活中,如果我有一个主程序为空的大程序(因为我忘了在其中放入任何东西)。那么发出警告应该是一件好事,不是吗。
也许我在 g++ 或 visual studio 中遗漏了一个选项,当 main 为空时会引发警告/错误?
最佳答案
原因很简单,如果 main
中没有 return 语句,它会隐式返回 EXIT_SUCCESS
,这是标准定义的。
所以一个空的 main 就可以了,不需要返回,不需要函数调用,什么都不需要。
要回答为什么 GCC 不警告您的问题,是因为警告可以帮助您解决常见错误。不使用变量会导致困惑的错误和代码膨胀。
然而,完全忘记编写主函数并不是初学者常见的错误,也不值得警告(因为这也是完全合法的)。
关于c++ - 为什么我写一个空的main没有警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10469602/