2010-10-01 30 views
0

我只是好奇,如果下面的代码会导致警告或没有用g ++编译器:不应该是这些警告与g ++ -Wall?

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

// Snip #2 
switch (x) { 
default: 
    printf("hi\n"); 
} 

的问题是这样陈述的遗留代码我在工作中存在: - |,我想应该有一些警告这些?

我有G ++ - 4.4.3c

+1

您期待什么警告?在情况2中抛出“未使用的变量x”的警告是很棘手的,因为对于所有编译器来说,在那个开关中有*个案例,但是预处理器吃了它们。 – 2010-10-01 23:24:59

+0

正确。这排除了第二个。 – sud03r 2010-10-01 23:29:09

+0

如果你有一个非常好的编译器,它会警告你增加一个布尔是一个不赞成的语言功能。 – 2010-10-01 23:31:36

回答

1

递增bool是一个不推荐使用的函数,但它仍然有效并达到所需结果,因此不应出现警告,这样做只是不好的做法。

1

与海湾合作委员会,-Wall实际上并不打开所有的警告。该手册页将涵盖所有选项,但要真正彻底,请使用“-Wall -Weff-C++ -pedantic -Werror”。