我有这个C代码,当我使用调试器完成它时,if或else块都没有运行
这是代码:
if(P2IN & BIT4 == BIT4 ){
car_lock ^= BIT0;
is_pressed = 1;
}else{
is_pressed = 0;
}
Run Code Online (Sandbox Code Playgroud)
在代码中的这一点,P2IN = 00010000
似乎if或else块都没有运行,我错过了什么?
问题出在你的if
陈述中.该==
运营商花费了比更高的优先级&
,那么什么是真正被评价为:
(P2IN & (BIT4 == BIT4))
Run Code Online (Sandbox Code Playgroud)
您需要将代码更改为:
if ((P2IN & BIT4) == BIT4)
Run Code Online (Sandbox Code Playgroud)
有一个关于运算符优先级一个有用的网页这里.