我的代码中有以下 if 语句:
~(( APQState == dot11->tempState[0] ) &&
( STAQState == dot11->tempState[1] ) &&
( tempk1 == dot11->tempState[2] ) &&
( tempk2 == dot11->tempState[3] ) &&
( tempk3 == dot11->tempState[4] ))
假设布尔变量,
B = ( APQState == dot11->tempState[0] ) &&
( STAQState == dot11->tempState[1] ) &&
( tempk1 == dot11->tempState[2] ) &&
( tempk2 == dot11->tempState[3] ) &&
( tempk3 = =dot11->tempState[4] )
即使 B 为真(=> ~B 为假),也会评估 if 语句。
我在执行时检查了循环内 B 的值。我得到 B=1;
奇怪的是,当我尝试计算 (~B ) 的值时,它显示的值为 2。(即当 B = 1 时)。
为什么会这样?