小编man*_*dle的帖子

是否有GCC警告检测到有符号类型的位移操作?

如果我正确地阅读了C++ ISO规范(第5.8.2和5.8.3节),则负签名类型的右移是特定于实现的,并且是左移未定义的行为.

因此,我想在我们使用g ++ 4.8.2编译的遗留源代码中找到对签名类型的移位操作.

不幸的是,我在手册中找不到这样的选项.我可以使用"g ++ -Wall -Wextra -pedantic"编译此代码,而不会发出警告:

int si    = -1;
int left  = si << 1; // -2 (multiplication by 2, sign is preserved)
int right = si >> 1; // -1 (no change, only 1s)
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我是否有这样的警告,如果没有,为什么gcc不关心它?

c++ gcc gcc-warning gcc4.8

13
推荐指数
1
解决办法
1170
查看次数

标签 统计

c++ ×1

gcc ×1

gcc-warning ×1

gcc4.8 ×1