c语言中,
#define a 1
#if a==1
#define b
#if b==1
会是什么结果?
结论
define | #ifdef VAR | #if defined(VAR) | #if VAR ==1 | #if VAR ==0 |
---|---|---|---|---|
#define VAR 1 | true | true | true | false |
#define VAR 0 | true | true | false | true |
#define VAR | true | true | ERROR (编译不通过) | ERROR |
#undefine VAR | false | false | false | true |
None | false | false | false | true |
- #undefine VAR等同于不定义VAR
- #ifdef VAR等同于 #if defined(VAR)
- 未定义的VAR等同于0
- 如果要多个条件 可以
#if defined(VAR_A) || VAR_B==1
- 如果要多个条件 可以
#if defined(VAR_A) && VAR_B==1