e258.c
if(変数|定数)は常に真
修正前 if ( x
|
1 ){
修正後 if ( x
&
1 ){
解説 非ゼロ定数で、
ビットOR演算
すると 結果は必ず「非ゼロ」となるので、 単純に、
ビットAND演算
と間違えている可能性があります。