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

时间:2011-08-04 18:08:54

标签: c programming-languages

考虑以下代码段:

#ifdef AAA && (defined BBB)
...
#endif

gcc-4.5.2抱怨这一行:

  
    

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

  

合并ifdefdefined

是否合法

谢谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:5)

#ifdef仅适用于一个令牌。 如果你想使用多个,那么写

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