無名結構體的乙個妙用

2021-05-22 23:43:34 字數 593 閱讀 7516

可以定義無名結構體型別的變數。編譯器對無名結構體的處理是隨機生成乙個不重複的變數名。無名結構的定義方式就是定義無名結構體時必須定義該結構體型別的至少乙個變數。

無名結構體的妙用就是可以避免相同型別的結構體的重複定義。

例如實現乙個佇列,佇列元素型別未知。

我們希望把佇列的對頭指標、對尾指標儲存在乙個結構體中,以便於管理這個佇列。

#define queue_init(name,type) /

struct                                           /

type * front;                            /

type * rear;                             /

} name;

這樣可以對每乙個具體型別的佇列都可以定義乙個name結構體來管理該佇列的頭尾指標,即使定義多個相同具體型別的佇列也不會引發重複定義的編譯錯誤。

例如:queue_init(q1,int);

queue_init(q2,int);

這樣定義了兩個佇列,其元素型別均為int型別,同時各得到了乙個維護佇列頭尾指標的結構體。

乙個結構體的示例

定義乙個結構體teacher型別,然後宣告乙個teacher陣列 teacher包含名字和資料.teacher陣列元素在堆空間開闢 然後輸入名字年齡,接下來列印輸入的內容,再然後釋放開闢堆的記憶體 如下 include stdafx.h include include include define ...

關於Go語言,自定義結構體標籤的乙個妙用

在go中首字母大小寫,決定著這此變數是否能被外部呼叫,例如 在使用標準庫的json編碼自定一的結構的時候 package main import encoding json fmt type tstruct func main fmt.println 編碼前 info b,json.marshal ...

C STL fstream的乙個妙用

上週日在任務中國上接了乙個任務,程式不是很難,主要是他們學校有個程式提交系統,一開始程式把基礎的例子都過來,但是一到optional test就掛掉。後面想到可能是檔案中的數字有問題。原題目要求是這樣的,從檔案中讀取出是int的資料。本來用的是fstream的,但是 遇到不是int就掛掉了,後來就乾...