在 c 語言中,允許幾種不同型別的變數存放到同一段記憶體單元中,也就是使用覆蓋技術,幾個變數互 相覆蓋。這種幾個不同的變數共同占用一段記憶體的結構,被稱為共用體型別結構,簡稱共用體。一般定義 形式為:
union 共用體名
變數名表列;
只有先定義了共用體變數,才能在後續的程式中引用它。不能直接引用共用體變數,而只能引用共用
體變數中的成員。引用方法如下:
共用體變數名.成員名
共用體型別資料具有以下特點:
同乙個記憶體段可以用來存放幾種不同型別的成員,但是在每一瞬間只能存放其中的一種,而不是同時 存放幾種。換句話說,每一瞬間只有乙個成員起作用,其他的成員不起作用,即不是同時都存在 和起作用的。
共用體變數中起作用的成員是最後一次存放的成員,在存入乙個新成員後,原有成員就失去作用。 共用體變數的位址和它的各成員的位址都是同一位址。
#includeunion info
;int main()
執行結果為:
a:3
b:3c:3
共用體的使用
以下是譚浩強老師的講解。很容易懂。真的是大師。c提供了構造型別 共用體 聯合體 型別支援。2 共用體變數特點 幾個成員共用一段記憶體。引申1 共用體變數的記憶體長度是多少?最長成員所佔位元組數。引申2 共用體變數幾個成員能同時存在嗎?不能。乙個時刻只有乙個成員存在。否則會被覆蓋。引申3 共用體變數成...
共用體和結構體聯合使用
1 用共用體成員來方便引用結構體成員 例如以下 1 rtc 8025 變數 2 typedef union 8025 datasdata 11 int8u u8timedata 6 12 tu8025 data 可以方便用陣列u8timedata來賦值和引用時鐘晶元中的年 月 日 時 分 秒。2 用...
共用體和結構體
共用體和結構體的宣告與初始化的格式不同。宣告 struct or union new st 初始化 new st 和陣列一樣,使用逗號分隔,並用花括號括起。也可以全放在一行。可以同時完成定義結構和建立結構變數的工作,只需要將變數名放在結束括號的後面 struct or union new st ne...