[ C++で開発 ]
例えばシンボル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
とは書けません。