ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

#ifdef #ifは使うべきではない?

CRIチャンネルで#ifdefや#ifは使わないほうがいいという話。(http://cri-ch.tv/iwai/731.html)
初めて#ifdefや#ifを知ったときはなんて便利なんだと使いまくっていた。今でも複数行にわたるコードをコメントアウトしたいときに、

#if 0
    無効にしたいコード
#endif

とするし、デバッグ時のみ有効なコードを書くときは次のようにすることが多い。

#ifdef _DEBUG_
    デバッグ時のコード
#endif

あと使うとしたら、Windowsの場合、Linuxの場合のように機種別にコードを変更するような場合かな。
それにしてもCRIチャンネルの記事の使うべきでない2番の理由で挙げられている例にはびっくり。こういう書き方はしたことが無い。こういう書き方はすべきで無いだろう。括弧の数が対応できなくなるので、エディタの自動インデントの機能が有効に働かなさそうだ。
あとD言語にはプリプロセッサが無いということを初めて知った。やっぱり害があるということで採用しなかったんだろうなぁ。
個人的にはまったく使わないということは出来そうもないけど、減らす努力はしたい。