演算子

最適化のためソースをいろいろいじったら正しく動作しなくなった。
なんでだろうといろいろ調べてみると、演算子の優先順位の間違い。


除算をシフト演算に置き換え

x = a + b / 16;

(誤) x = a + b >> 4;
(正) x = a + (b >> 4);

じつにアホらしいミスだが、こういうバグのほうが見つけにくいので厄介。
まあカッコはくどいくらい付けときなさいってこった。