トップページへ

C/C++の#if 0とは

小粋空間 » Programming Language » C/C++ » 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の部分のコード量が多い場合、処理を切り替えるコメントアウト代わりに使えそうです。

« 前の記事へ

次の記事へ »

トップページへ