- # C言語/C++入門 > C++プリプロセッサ
#ifdef #endif #undef #ifndef/条件付きコンパイル
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
プリプロセッサは、条件付きコンパイルが可能であり、デバッグのためのコーディングに役立ちます。
開発中には、デバッグコードを入れておき、プログラムが完成したらデバッグコードを削除したい場合、デバッグコードを用いると便利です。
スポンサーリンク
#ifdef #endif
#define DEBUG /* デバッグ有効 */ ・・・ #ifdef DEBUG cout << "Debug: var = " << var << "\n"; #endif /* DEBUG */
プログラムに、「#define DEBUG」というマクロ定義が行われていたら、#ifdef と #endif の間の行が有効になり、デバッグ用のコードが実行されます。
しかし、「#define DEBUG」の定義がなければ、、#ifdef と #endif の間の行は、存在しないものとしてプリプロセッサにより処理され、コンパイルが行われます。
#undef
あるいは、可読性を高めるために、「#define DEBUG」を・・・
#undef DEBUG /* デバッグ無効 */
と書くのも有効な方法です。
#undef を使用すると、シンボルが未定義という意味を持ちます。
#ifndef
#ifndef は #ifdef の逆であり、マクロ定義されていない場合に、#ifndef~#endif間のコードが有効となり、コンパイルが行われます。
#ifdef があれば、あまり使わないような気もします。
プログラムの一部を一時的に無効にさせる場合にも、#ifdef~#endif を使うことができます。
#ifdef UNDEF
処理1・・・;
#endif /* UNDEF */
とすることで、処理1を一時的に無効とできます。
しかし、UNDEFが定義されていれば、有効になりますので、注意です。
スポンサーリンク
>> 次の記事 : #inlude/ヘッダファイル(インクルードファイル)
<< 前の記事 : #define/定数定義・マクロ
スポンサーリンク