我正在使用 g++ (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1 gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
如果我制作的 cpp 和 c 文件仅包含
int main(const int argc, const char *const argv[])
{
}
并g++ -Wall test_warnings.cpp
在没有警告的情况下编译它。
如果我用它编译它,gcc -Wall test_warnings.c
我会收到您期望的警告:
test_warnings.c: In function ‘main’:
test_warnings.c:4:1: warning: control reaches end of non-void function [-Wreturn-type]
如果使用 -Wreturn-type 而不是 -Wall,则会表现出相同的行为。
为什么 g++ 没有给我一个返回丢失的警告?