我正在将值读入一个数组,然后针对特定的系统协议进行检查,如果条件不满足,程序必须继续读取,这很简单。代码块:
buff = read(fp, token_monger, MAX_APDU);
printf("the token_monger[2] and token_monger[3] = %02x and %02x\n", token_monger[2], token_monger[3]);
while(token_monger[2] != 0x01 && token_monger[3] != 0x00)
{
printf("inside while token check\n");
buff = read(fp, token_monger, MAX_APDU);
token_monger[buff] = 0;
}
printf("the token_monger[2] and token_monger[3] = %02x and %02x\n", token_monger[2], token_monger[3]);
while循环之前和之后的打印用于调试。它们都打印值0x00。当我执行这段代码时,进程在循环之前和之后到达但是从不进入它,我从我的打印中知道条件不满足,此外,还有一个if语句只需几行就可以满足了程序退出while循环(如果有人想看到那部分,我可以发布)。我想知道是否有任何明显的错误,或者如果这是编译器可能存在的问题,而且无法处理这样的事情(这似乎不太可能)再次感谢
答案 0 :(得分:0)
你写了#34; ..之前.. while循环..它们都是.. 0x00。 " 仅在
时输入while循环while(token_monger[2] != 0x01 && token_monger[3] != 0x00)
正如你所说,token_monger[3] == 0x00
,所以跳过了while循环。