1.格式:
#if constant-expressionstatements#elif constant-expressionstatements
#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
1 為什麼需要條件編譯 客戶的需求在不停地發生變化,一會兒需要這個功能,一會兒不需要這個功能。我們可以使用條件編譯來方便地裁剪功能。2 條件編譯語句 if 條件編譯語句 if的形式是 1 if expression 2.3 elif expression 4.5 elif expression 6....
條件編譯 if
1 為什麼需要條件編譯 客戶的需求在不停地發生變化,一會兒需要這個功能,一會兒不需要這個功能。我們可以使用條件編譯來方便地裁剪功能。2 條件編譯語句 if 條件編譯語句 if的形式是 1 if expression 2.3 elif expression 4.5 elif expression 6....
Golang 編譯 條件編譯
條件編譯 標籤編譯 build tag build build linux and 386 or darwin and not cgo 以 開始,例如 build 支援 goos 與 goarch 並可以具有多個值,用 分割,例如 build linux,darwin,freebsd 支援 不等條件...