【发布时间】:2012-09-30 12:30:55
【问题描述】:
最近我在浏览 SO 时遇到了 this topic,其中 Sam Jansen 声明了一个宏 PACKED_STRUCT(name),但在代码中他使用它一次没有参数,一次使用提供的 name 参数。
我尝试用 GCC 4.6.1 编译一个类似的示例程序,我很惊讶它编译得很好,根本没有任何警告(我使用的是-std=c99 -Wall -Wextra -pedantic 命令行开关)。
但是,当我尝试创建两个参数宏并使用少于两个参数调用它时,它不起作用。
所以我的问题是,如果这是 GCC 中的一个错误,或者它是 GCC 的一个特性,或者它是在标准中的某个地方定义的,它必须像这样工作吗?
根据 GCC 文档中的this page,这应该是不可能的。
【问题讨论】: