&& と || の短絡評価

int a = 0;
int b = 1; 

if (a == 0 || b == 1) printf("a\n");

簡単に言えば、"a == 0" で条件が満たされているのでこっちだけ評価されて、"b == 1"は評価されないよという話。

"b == 1"のほうに不具合があったりすると、しばらく隠れていて

開発終盤で発覚、という原因になりやすい。

気をつけようね。

ネタ元