1
如果我编译克++以下程序并启用针对转化警告(-Wconversion)警告以g ++ 4.5.2 uint16_t与Wconversion
#include<stdint.h>
int main() {
uint16_t foo = 1;
foo += 1;
return 0;
}
我得到一个警告,警告:转换从int到uint16_t可以改变它的价值。
精细,如果FOO 1 + = 1被解释为整型,但怎么样:
foo+=static_cast<uint16_t>(1);
我得到了同样的警告,应该不是经营者工作时的类型有双方都是一样的,没有转换为int?
这几乎使得复合操作符在“小”类型上不可用(从非警告的角度看)。 – 2011-06-07 13:27:49
任何运算符的确,每个加法,乘法或其他都会将变量提升为int。 – rubenvb 2011-06-07 13:37:10