为什么这个if语句不是运行?
Why does this if statement not run?
我有这个 C 代码,当我用调试器检查它时,if 或 else 块都不是 运行
代码如下:
if(P2IN & BIT4 == BIT4 ){
car_lock ^= BIT0;
is_pressed = 1;
}else{
is_pressed = 0;
}
此时在代码中,P2IN = 00010000
似乎 if 和 else 块都不是 运行,我错过了什么?
问题出在您的 if
语句中。 ==
运算符的优先级高于 &
,因此真正计算的是:
(P2IN & (BIT4 == BIT4))
您需要将代码更改为:
if ((P2IN & BIT4) == BIT4)
有一个关于运算符优先级的有用网页 here。
我有这个 C 代码,当我用调试器检查它时,if 或 else 块都不是 运行
代码如下:
if(P2IN & BIT4 == BIT4 ){
car_lock ^= BIT0;
is_pressed = 1;
}else{
is_pressed = 0;
}
此时在代码中,P2IN = 00010000
似乎 if 和 else 块都不是 运行,我错过了什么?
问题出在您的 if
语句中。 ==
运算符的优先级高于 &
,因此真正计算的是:
(P2IN & (BIT4 == BIT4))
您需要将代码更改为:
if ((P2IN & BIT4) == BIT4)
有一个关于运算符优先级的有用网页 here。