C語言 - 第三十五章 | 聯合(union)
聯合(union)
union
跟struct
一樣,都是產生一種新的資料型態,只是不同的是,struct
是每個成員變數都配置一段空間,union
則是共用一段記憶體空間。
union
維護足夠的空間來置放多個資料成員中的「一種」,而不是為每一個資料成員配置空間,使用關鍵字union
來定義,在union
中所有資料成員共用一個空間,同時間只能儲存其中一個成員的資料。
1 | union StateMachine { |
一個union
只配置一個足夠大的空間以來容納最大長度的資料成員,以上例而言,最大長度是double
型態,所以StateMachine
的記憶體空間 就是double
型態的長度。
1 |
|
1 | // 執行結果 |
由於union
的資料成員共用一個記憶體空間,所以必須存取正確的資料成員才能正確的取出資料。