プログラミングの伝承としてif文の中で変数をある特定の値と比較する際に、その特定の値を==の左に書いて、変数を右に書くというものがあります。たとえば、C++であれば、 if (0 == ptr) { // ... }このように書く理由として、==とタイプすべきところを間違って=と書いてもコンパイラがエラーにしてくれるからだと説明されます。しかし、上記の書き方は、プログラムを読む際には、「0はptrか」と読むことになり、意味としておかしいものとなります。本来なら素直にptr == 0と書いて、「ptrは0か」と読み手に読ませるべきです。※1 gcc/g++では、-Wallをコンパイルオプションで指定すれば、ptr = 0と間違って書いたとしても、次のように警告します。 warning: suggest parentheses around assignment used as truth v
![コンパイル時のワーニング(-Wallと-Werror)(2) : 柴田 芳樹 (Yoshiki Shibata)](https://cdn-ak-scissors.b.st-hatena.com/image/square/91294c5e7d5927632be882106d59f6c861902287/height=288;version=1;width=512/https%3A%2F%2Fblog.ss-blog.jp%2F_common%2Fimg%2Fsonet_logo_l.png)