有人可以爲我解釋這段代碼嗎?結構標籤和花括號之後有什麼區別?
typedef char AirportCode[4];
typedef struct NodeTag{
AirportCode Airport;
struct NodeTag *link;
}Node;
Node *L;
這是我的數據結構類中的一段代碼。這段代碼實現了將數據保存在鏈表節點中。我想了解的是NodeTag一般用於什麼?是否當你希望結構持有另一個迭代,缺乏一個更好的詞,結構內部的結構呢? NodeTag和在大括號之後放置的內容(在本例中爲「Node」)之間有什麼區別?
在定義NodeTag之後,不再使用「Node NodeTag varName」創建變量,而是使用「Node varName」。所以它只是試圖避免寫「結構」關鍵字。 – 11thdimension
@Martin我不認爲這真的是重複的 - 這裏的OP是詢問'NodeTag'與'Node',而您提議的dupe中的示例使用未命名的結構。如果有的話,這個問題的提議([在C++中'struct'和'typedef struct'之間的區別?](http://stackoverflow.com/q/612328/643383))是一個更好的選擇,只是它涵蓋了C++而不是C. – Caleb