=====プリプロセッサ条件分岐===== #if, #ifdef, #ifndef, #else, #elif, #endif これらの6つのプリプロセッサコマンドは、コンパイラのロジックを制御するためのものです。 このコマンドを使用すると、ファイルがコンパイルされるときに、特定の行を含めたり、外したりということを行うことができるようになります。 #if 式 もしも式の結果の値がtrueであれば、このコマンドの行からすぐあとのコード群がコンパイルされるようになります。 #ifdef マクロ 指定されたマクロが、[[define|#define]]を使って定義済みの場合には、このコマンドの行からすぐあとのコード群がコンパイルされるようになります。 #ifndef マクロ 指定されたマクロが、[[define|#define]]を使って定義済みで __なかった__ 場合には、このコマンドの行からすぐあとのコード群がコンパイルされるようになります。 補足メモ: #elif というコマンドは "elseif" という表現を縮めたように見えますが、まったくその通りに動作します。また、 #ifの直後に"defined", "!defined"と書くこともできます。 これらのすべてを使ったサンプルを紹介します: #ifdef DEBUG cout << "これはテスト版です。, i=" << i << endl; #else cout << "これは製品版です!" << endl; #endif このサンプルは、デバッグのために数多くのcoutをコードに埋め込んだり外したりを間違いなく行うよりは、ずっと簡単にデバッグすることができることがおわかりだと思います。 関連トピック: [[define|#define]]