CRIチャンネルで#ifdefや#ifは使わないほうがいいという話。(http://cri-ch.tv/iwai/731.html)
初めて#ifdefや#ifを知ったときはなんて便利なんだと使いまくっていた。今でも複数行にわたるコードをコメントアウトしたいときに、
#if 0 無効にしたいコード #endif
とするし、デバッグ時のみ有効なコードを書くときは次のようにすることが多い。
#ifdef _DEBUG_ デバッグ時のコード #endif
あと使うとしたら、Windowsの場合、Linuxの場合のように機種別にコードを変更するような場合かな。
それにしてもCRIチャンネルの記事の使うべきでない2番の理由で挙げられている例にはびっくり。こういう書き方はしたことが無い。こういう書き方はすべきで無いだろう。括弧の数が対応できなくなるので、エディタの自動インデントの機能が有効に働かなさそうだ。
あとD言語にはプリプロセッサが無いということを初めて知った。やっぱり害があるということで採用しなかったんだろうなぁ。
個人的にはまったく使わないということは出来そうもないけど、減らす努力はしたい。