有关C程序语句问题请教

2019-07-16 00:27发布

uchar Keyscan(void)
{
    uchar i, j, temp, Buffer[4] = {0xef, 0xdf, 0xbf, 0x7f};
    for(j = 0; j < 4; j++)
        {
      P1 = Buffer[j];         
      temp = 0x01;           
      for(i = 0; i < 4; i++)
          {
        if(!(P1 & temp))      /
        return (i + j * 4);   //返回取得的按键值
        temp <<= 1;           //判断的位,左移一位
      }
     }
    return 16;                //判断结束,没有键按下,返回16
}   

如上,在什么情况下,  if(!(P1 & temp))     才执行后面的语句。???????
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。