char byte = 0x80
if(byte == 0x80)
{
cout << "This message never gets printed!";
}
十六进制值0x80
在二进制中等效于1000 0000
,它显然适合一个字节。
但是,编译器警告我有关条件的行:
warning: comparison is always false due to limited range of data type
为什么在这种情况下条件错误的结果?
是否0x80
在有条件的情况下扩展到类似的东西0x80000000
?
是否可以使用==
运算符来检查 a 是否char
等于0x80
?