goo blog サービス終了のお知らせ 

われこわれこ

プログラムじゃあ~りませんか!

#if #else #endif を入れ子にしても読み易くする画期的な方法を発見!世界初か?

2015-05-05 11:53:17 | C++
私の場合、デバッグ中に何かの処理の改良版を作成したような時に#if-#endifを使って
こんなふうに書く事が良くある。

#if(0)
// 最初に作ったのはこちらの処理
#else
// ちょっとこっちを試してみたい
#endif


でも、さらにその改良版の改良版2を作った場合には、#if-#endifを入れ子にすると


#if(0)
// 最初に作ったのはこちらの処理
#else
#if(0)
// ちょっとこっちを試してみたい
#else
// ちょっとこっちを試してみたい2
#endif
#endif



となって分け分らなくなる。3重入れ子になるともう何が何だか分らない。
インデントして字下げすれば

#if(0)
// 最初に作ったのはこちらの処理
#else
     #if(0)
     // ちょっとこっちを試してみたい
     #else
     // ちょっとこっちを試してみたい2
     #endif
#endif

見易いけれど、Visual Studioのエディターが勝手に整形してインデントが解除されてしまうので困る。


ところが昨日、良い方法が見つかった。

#if(0)

#else(0)

#endif(0)


のように書いてもVisual Studio 2013 C++では問題ないようだ。
#if(0)は分るが、#else(0)や#endif(0)は無意味な0が付いていても
怒られないぞ。何でやねん。まあ理由は分らないけれど、これを使うと、


#if(00)
// 最初に作ったのはこちらの処理
#else(00)

#if(0)
// ちょっとこっちを試してみたい
#else(0)
// ちょっとこっちを試してみたい2
#endif(0)

#endif(00)


のようにすると、入れ子にしても、#if-#else-#endifの対応が見易くなるので多少は可読性が良くなるのではないか!


#else(0)や#endif(0)のように末尾に(0)付けても怒られない理由知っている人いましたら教えて下さい。

最新の画像もっと見る

コメントを投稿