简单c语言问题 win8 vc6.0环境
char receive[10] ="\x12\x34\xFF\x56\x78";
if(receive[2] == 0xFF)//为什么该式为假
{
printf("ok\n");//无ok输出。。。?
} c语言 if语句
[解决办法]
因为 0xFF默认是 int型
所以 receive[2] 从char 提升成int后,进行比较操作
提升到int 是0xFFFFFFFF 即-1 因此不等于0x000000FF,即256
解决办法可以把char数组声明成unsigned char
或者把0xFF强转成 char后进行比较
[解决办法]
char 改为 unsigned char
[解决办法]
改为if((unsigned char)receive[2] == 0xFF)