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

由於union的資料成員共用一個記憶體空間,所以必須存取正確的資料成員才能正確的取出資料。
