C++ 不应该';不要用g++-墙

C++ 不应该';不要用g++-墙,c++,gcc-warning,C++,Gcc Warning,我只是好奇以下代码是否会导致g++编译器发出警告: // Snip #1 bool x = 0; x++; // Snip #2 switch (x) { default: printf("hi\n"); } 问题是我处理的遗留代码中存在这样的语句:-|,我想应该有一些警告 我用gcc编写了g++-4.4.3c,Wall实际上并没有打开所有警告。手册页将涵盖您的所有选项,但要真正全面,请使用“-Wall-Weff-c++-pedantic-Werror”。增加布尔值是一个不推荐使用的

我只是好奇以下代码是否会导致g++编译器发出警告:

// Snip #1
bool x = 0;
x++;

// Snip #2
switch (x) {
default:
    printf("hi\n");
}
问题是我处理的遗留代码中存在这样的语句:-|,我想应该有一些警告


我用gcc编写了g++-4.4.3c,Wall实际上并没有打开所有警告。手册页将涵盖您的所有选项,但要真正全面,请使用“-Wall-Weff-c++-pedantic-Werror”。

增加布尔值是一个不推荐使用的函数,但它仍然有效并达到预期的结果,因此不应出现警告,这样做只是一种不好的做法。

您期望得到什么警告?在案例2中为“未使用的变量x”抛出警告是很棘手的,因为编译器都知道,该开关中存在案例,但预处理器会处理它们。正确。这就排除了第二个问题。如果你有一个非常好的编译器,它会警告你递增布尔值是一种不推荐的语言特性。