共用體的定義和使用

2021-10-07 23:46:10 字數 570 閱讀 3762

在 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...