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?