【发布时间】:2013-07-05 13:08:53
【问题描述】:
以下代码:
unsigned char result;
result = (result << 4 );
使用 gcc 版本 4.6.4 (Debian 4.6.4-2) 编译,带有 -Wconversion 标志会导致警告
警告:从“int”转换为“unsigned char”可能会改变其值 [-Wconversion]
为什么会这样?
【问题讨论】:
-
隐式类型转换规则,位运算符在C、C++中自动将char提升为int
-
这里是答案,您正在寻找:stackoverflow.com/questions/3482262/…