这些警告不应该是带有 g++ 的吗? -墙?
我只是好奇以下代码是否会导致 g++ 编译器发出警告:
// Snip #1
bool x = 0;
x++;
// Snip #2
switch (x) {
default:
printf("hi\n");
}
问题是这样的语句存在于我处理的遗留代码中:-|,我想这些应该有一些警告?
我有 g++-4.4.3c
I was just curious if the following code should result in warning or not by g++ compiler:
// Snip #1
bool x = 0;
x++;
// Snip #2
switch (x) {
default:
printf("hi\n");
}
The problem is such statements exist in a legacy code i work upon :-|, I guess there should be some warnings for these?
I have g++-4.4.3c
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
递增 bool 是一个已弃用的函数,但它仍然有效并达到了预期的结果,因此不应出现警告,这样做是不好的做法。
Incrementing a bool is a deprecated function, yet it is still valid and achieves the desired result, therefore a warning should not appear, it is just bad practice to do so.
对于 gcc,-Wall 实际上并不会打开所有警告。手册页将涵盖您的所有选项,但要真正彻底,请使用“-Wall -Weff-c++ -pedantic -Werror”。
With gcc, -Wall does not actually turn on all warnings. The man page will cover all your options, but to be really thorough, use "-Wall -Weff-c++ -pedantic -Werror".