考虑以下代码片段:
#ifdef AAA && (defined BBB)
...
#endif
gcc-4.5.2 报告了这行代码的问题:
#ifdef指令末尾有额外的标记。
在使用 ifdef
和 defined
组合时是否是不合法的?
谢谢!
考虑以下代码片段:
#ifdef AAA && (defined BBB)
...
#endif
gcc-4.5.2 报告了这行代码的问题:
#ifdef指令末尾有额外的标记。
在使用 ifdef
和 defined
组合时是否是不合法的?
谢谢!
#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
#ifdef
只能作用于一个标记。
如果你想使用多个标记,请写成:
#if defined(AAA) && defined(BBB)