c - #ifdef 需要查询和说明

标签 c

我看到这样的结构:

#ifdef FOO || defined BAR
...
#endif

和编译器的提示“警告:#ifdef 指令末尾的额外标记”,显然应该是:

#if defined FOO || defined BAR
...
#endif

标准有明确规定吗?你能指出相关部分吗?

最佳答案

在 C99 中,6.10 预处理指令,第 1 段是语法:

if-group:
# if constant-expression new-line groupopt
# ifdef identifier new-line groupopt
# ifndef identifier new-line groupopt

这表明您使用 #ifdef 的第一个构造是不正确的,因为只有标识符可以跟在 #ifdef 之后,不允许使用常量表达式。

关于c - #ifdef 需要查询和说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9314832/

相关文章:

c - 错误无法将参数 'int**' 转换为 'int*' 到 '1'

c - 双指针作为函数的数组

c - 如何将ListView复选框与选择同步?(WIN32)

c - 如何打印空指针数组指向的值

c - 如何在 C 中对另一个数组中的两个数组求和?

c - scanf 字符指针中的字符串

无法理解从 C 到汇编的这种转换

c - 用 C 语言编写链表的通用搜索函数?

c - while 循环运行一次迭代,不管

无法覆盖 gdb 之外的返回地址