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