我有一個關於C.空結構的問題,據我可以從閱讀的標準來講,似乎他們是不允許的:啓用警告空結構
6.2.5-20
- 甲結構類型描述了一種順序地分配非空子集構件的對象 (和,在某些情況下,一個不完整的陣列),其每一個具有一個任選 指定的名稱和可能是不同類型。
所以,試圖編譯像不出意外時:
struct foo
{
};
在MS VS,有一些錯誤時,拋出:
錯誤C2016:C需要一個結構或聯合有至少有一個成員
但是,當編譯與相同的代碼10沒有發現錯誤。所以...
- 我正確閱讀規範,這是而不是允許在C嗎? (更令人驚訝的是,微軟是否正確?!)
- 有沒有一個選項可以傳遞到
gcc
使它能夠解決這個問題?
查看http://stackoverflow.com/questions/755305/empty-structure-in-c?rq=1 – Nick 2013-03-14 16:50:42
@Nick - 不是真的一樣。 A)該問題是關於擺脫警告,我*希望*看到警告。 B)你所連接的那個子問題是關於添加元素並保持大小爲0的,我不在乎他談論的C)在C11標準出來之前在2009年被問到,所以可能很好新的信息。 – Mike 2013-03-14 17:07:14