プログラムを書くにあたって、「移植性を高めよう」とばかりに#ifdefを使っていろいろなマシンごとのコードを個別に書くのは愚かなことだ、というのは、常識と言っていいと思う。「プログラミング作法」にも書いてあるし(p.272より)。
というわけでcrowbarにしろDiksamにしろ、WindowsでもLinuxでも問題なく動作するが(まあコンパイラにどっちもgccを使っているから当たり前かもしれないが)、#ifdefはひとつも使っていない。
が、今、分割コンパイル用にファイル検索部分のコードを考えているんですが、こういうことをするためにはディレクトリ区切りの「/」と「\」とか、パスそのものを区切る「:」と「;」とかは、コンパイル時に-Dで与えるか#ifdefで切り分けるしかないかなあ、と思っている。この手のものを与えてくれる、Cの規格で保証されたマクロとかってないよね?
今こんなのを書いているってことは、
2007-05-20 - プログラミング言語を作る日記
以来、1行もコードを書いてないってことですが。いやもう最近忙しくって。