#ifdef #ifndef

 

C言語の #ifdef と #ifndef の使い方についてまとめました。

 

確認環境:Eclipse 4.5.2

 

ソースコード見たほうが早いですね。

実行結果です。

Tip_04_01_001a

 

解説:

#ifdef 【宣言名】

#endif

がひとつのかたまりです。

【宣言名】が #define で定義されていれば、このかたまりは実行されます。

 

これとは逆に、

#ifndef 【宣言名】

#endif

【宣言名】が #define で定義されていなければ、このかたまりは実行されます。

 

このように、ある時は実行させたいけれど、ある時は実行させたくないという箇所を、

#ifdef ~ #endif、#ifndef ~ #endif でくくっておけば、

#define の定義を切り替えるだけで、実行したり、実行しなかったりを変えることができ、

コメントアウトやコメントインよりも柔軟な対応ができるので、特にデバッグの時に便利です。

 

なお、#ifdef、#ifndef、#endif、#include などの 「#」がつくものを ディレクティブ と言います。