将'defined'与'ifdef'一起使用?

Mar*_*ark 4 c programming-languages

考虑下面的代码:

#ifdef AAA && (defined BBB)
...
#endif
Run Code Online (Sandbox Code Playgroud)

gcc-4.5.2在这条线上抱怨:

#ifdef指令末尾的额外令牌.

它是非法的结合ifdefdefined

谢谢!

Jam*_*lis 12

#ifdef需要一个单一的标识符和相当于#if defined(identifier).

#if如果表达式更复杂,则需要使用该指令:

#if (defined AAA) && (defined BBB) // true if AAA and BBB are both defined
#if AAA && (defined BBB)           // true if AAA is true and BBB is defined
Run Code Online (Sandbox Code Playgroud)


Nob*_*ody 5

#ifdef只会在一个令牌上工作.如果你想使用多个,那么写

#if defined(AAA) && defined(BBB)