1

我正在为将 GNU C 作为中间代码输出的语言创建编译器。(是的,我知道做 IR 有更好的方法,但我很懒,无论如何我都会将其重写为自托管)。

目前,如果我创建一个没有参数的函数,我的编译器会生成

bar foo(){/*Implementation here*/}

这与所需的行为不同:

bar foo(void){/*Implementation here*/}

但是,我希望 GCC 将前者视为后者(否则我必须在我的代码中做一个特殊情况)。

GCC 是否有这样做的标志?

4

1 回答 1

2

搜索了 提供的大量选项后gcc,我没有找到任何接近您想要的东西。

但是,如果您要生成 C 代码,我相信您有责任生成正确的代码。bodsgcc非常清楚“零参数”函数和“不确定数量的参数”函数之间的区别。因此,我的建议是咬紧牙关,将这种特殊情况插入您的代码中。

如果结构正确,您应该只需要在一个地方进行更改:-)

于 2015-01-02T07:15:41.573 回答