簡體   English   中英

是否有一個GCC選項將foo()視為foo(void)?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM