1. 程式人生 > >#if 條件編譯

#if 條件編譯

mbo 求值 line 處理 sym exp eight 字面值 define

1.格式:

#if  constant-expression
         statements
#elif constant-expression
       statements
#else
       statements
#endif

其中 constant-expression(常量表達式:字面值常量,或者一個有#define定義的符號)由預處理器進行求值;

  如果值為非零值,則statements被正常編譯;

註意:

  這裏#elif 出現的次數不限制,每個constant-expression (常量表達式) 只有當前面所有的常量表達式的值都是假時,才會被編譯;

  #else只有前面所有的常量表達式都是假時,才會被編譯;

  其他情況下都會被忽略;

2.是否被編譯

#if defined(symbol)

#endif


#ifdef symbol

#endif

以上兩句都是判斷symbol是否被定義過;

#if !defined(symbol)

#endif


#ifndef symbol

#endif

以上兩句都是判斷symbol是否沒被定義過;

#if 條件編譯