[ C++で開発 ]

プリプロセッサについて

条件コンパイル

シンボルの定義を調べる

#ifdef と #if defined の違い

例えばシンボルFOOが定義されているかどうかを調べる場合に、

#ifdef FOO

#if defined (FOO)

の2種類の条件コンパイル文の記述方法があります。この違いについてまとめると、

#if defined (FOO)
//
#elif defined (BAR)
//
#else
//
#endif

とelse節で別なシンボルが定義されているかどうかを調べる記述は書けますが、

#ifdef FOO
//
#elifdef BAR
//
#else
//
#endif

とは書けません。また、

#if defined(FOO) || defined(BAR)
//#endif

は書けますが

#ifdef FOO || BAR
//
#endif

とは書けません。


This page is written by Toru TAKAHASHI.(torutk@02.246.ne.jp)