[英]Is there a GCC option to treat foo() as foo(void)?
我正在為一種輸出GNU C作為中間代碼的語言創建編譯器。 (是的,我知道有更好的做IR的方法,但我很懶,而且我會把它重寫為自我托管)。
目前,如果我創建一個沒有參數的函數,我的編譯器會生成
bar foo(){/*Implementation here*/}
這與期望的行為不同:
bar foo(void){/*Implementation here*/}
但是,我希望海灣合作委員會將前者視為后者(否則我必須在我的代碼中提出一個特例)。
GCC是否有一面旗幟可以做到這一點?
在搜索了gcc
提供的相當多的選項之后,我沒有找到任何接近你想要的東西。
但是,如果你要生成C代碼,我相信你有責任生成正確的代碼。 gcc
bods完全清楚“零參數”函數和“不確定數量的參數”之間的區別。 因此,我的建議是咬緊牙關並將特殊情況插入到您的代碼中。
如果結構合理,您只需要在一個地方進行更改:-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.