C/C++の#if 0とは
C/C++の"#if 0"について調べてみました。
1.はじめに
既存システムのC++のプログラムに、下記の"#if 0"という記述がありました。
#if 0
// 処理A
#else
// 処理B
#endif
ビルドすると、どちらが動作するのか分かりません。
ということで、C/C++の"#if 0"について調べてみました。
2.#if 0とは
まず、"#if"ディレクティブはプリプロセッサの1つで、"#if 0"と書くことで判定結果は常に偽となり、処理Aはコンパイル対象にならないことを意味します。
つまり、前述のプログラムをコンパイルすることで、プリプロセッサでプログラムから処理Aが除外され、
// 処理B
という部分のみがコンパイル対象になります。
ちなみに、"0"を"1"に書き換えて、
#if 1
// 処理A
#else
// 処理B
#endif
とすれば、常に処理Aのみがコンパイル対象になります。
処理Aや処理Bの部分のコード量が多い場合、処理を切り替えるコメントアウト代わりに使えそうです。
Posted by yujiro このページの先頭に戻る
トラックバックURL
コメントする
greeting