我有一個關於C風格struct的簡單問題。我是通過一些示例代碼挖掘,發現通過以下方式宣佈一個結構:C風格struct聲明
typedef struct _STRUCTNAME
{
// struct contents
} STRUCTNAME;
請注意,缺乏對第二次STRUCTNAME下劃線的顯示出來。我的理解是,這將聲明一個名爲STRUCTNAME的_STRUCTNAME,並且沒有更多此結構的對象可以被實例化。
但是,這似乎並非如此。這種類型的結構是從來沒有真正的代碼實例化,除了在一個地方:在這種對象的全局陣列在隨機的地方使用:
const struct STRUCTNAME ARRAYNAME[] =
{
// various STRUCTNAMEs declared here
};
注意缺少下劃線的再次(我認爲是實例化對象的名稱?)
我的理解是完全關閉的嗎?
有人能解釋一下嗎?
你能解釋一下你所說的「標籤」是什麼意思? – Klauss
「標籤」僅僅是C標準用於提供給struct,union或enum的名稱/標識符的術語。 –