条件While循环与数组比较

时间:2015-04-18 14:03:23

标签: c linux while-loop debian

我正在将值读入一个数组,然后针对特定的系统协议进行检查,如果条件不满足,程序必须继续读取,这很简单。代码块:

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循环(如果有人想看到那部分,我可以发布)。我想知道是否有任何明显的错误,或者如果这是编译器可能存在的问题,而且无法处理这样的事情(这似乎不太可能)再次感谢

1 个答案:

答案 0 :(得分:0)

你写了#34; ..之前.. while循环..它们都是.. 0x00。 " 仅在

时输入while循环
while(token_monger[2] != 0x01 && token_monger[3] != 0x00)

正如你所说,token_monger[3] == 0x00,所以跳过了while循环。