2
基本上我有四宗現有代碼:設置宏值,當且僅當空
- 宏觀ABC未設置
- 宏觀ABC設置,但空:
#define ABC
或-DABC
- 宏觀ABC設置和計算結果爲true:
#define ABC 1
或-DABC=1
- 宏觀ABC設置,並計算爲false:
#define ABC 0
或-DABC=0
我想第一和第四,而第二和第三個情況是相同的:
#if defined(ABC) && IS_EMPTY(ABC)
# undef ABC
# define ABC 1
#endif
#if !defined(ABC) || !(ABC)
# undef ABC
# define ABC 0
#endif
我該怎麼辦IS_EMPTY(X)
?
同一問題在這裏: http://stackoverflow.com/questions/3781520/how-to-test-if-preprocessor-symbol-is-defined-but-has-no-value –