在使用#ifdef时如何与defined一起使用?

4

考虑以下代码片段:

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

gcc-4.5.2 报告了这行代码的问题:

#ifdef指令末尾有额外的标记。

在使用 ifdefdefined 组合时是否是不合法的?

谢谢!

2个回答

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

5

#ifdef 只能作用于一个标记。 如果你想使用多个标记,请写成:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接