C++条件判断一只为假
我写的USB程序从USB设备读取数据 其中char数组的第二位为0xff。我读取到了数据,但是在用if进行比较但是结果一直为假。这是怎么回事?附代码:
succ = ReadFile(hDevice, inputReport, 8, &nReadBytes, NULL);
if(OpenDevice == FALSE) //如果OpenDevice = FALSE,退出线程
break;
if(!succ) //如果读取失败,退出线程
{
//判断是否namedpipe已经断开,如果断开则中断程序
return 0;
break;
}
if(succ && (nReadBytes == 8))//this condition used under the test mode
{
if(inputReport[1]==0xff)//这里一直是假。为什么?那位大侠帮帮忙啊。
{
[解决办法]
试试这样:
inputReport[1]^0xff == 0x00
这个应该和数值运算时,
隐式的数据类型转换有关。
[解决办法]
inputReport[1]==0xff
可以断点一下看看具体的值 然后采用版主的方法试一试
建议先断点看一下是你的值错误 还是比较的错误
[解决办法]
char ch = 0xff;
if (ch == 0xff)//这里ch是char类型会首先被提升为int,楼主的编译器被提升为了0xffffffff;
{
}