#if #elif #else #endif
#if 條件1
代碼段1
#elif 條件2
代碼段2
...
#elif 條件n
代碼段n
#else
代碼段n+1
#endif
如果#if後面的常量表達式為true,則編譯他所控制的代碼.
#define MY_VERSION 1
#if MY_VERSION == 1
printf("my version 1\n");
#elif MY_VERSION == 2
printf("my version 2\n");
#else
printf("my version unknown\n");
#endif
這裡因為MY_VERSION定義為1,那麼編譯後最終會列印”my version 1”.
# if defined(macro_name) #endif
#if defined(macro1) || (!defined(macro2) && defined(macro3))
...
#elif defined(macro1)
...
#else
...
#endif
#ifdef #else #endif
#ifdef macro_name
代碼段1
#else
代碼段2
#endif