C++ 程式設計
外觀
union 關鍵字用於定義聯合型別。
- 語法
union union-name
{
public-members-list;
private:
private-members-list;
} object-list;
聯合類似於 struct(比 class 更類似),聯合在記憶體中共享相同位置的欄位,並且預設情況下是 public 而不是 private。union 的大小是其最大欄位的大小(如果對齊需要,則更大,例如在 SPARC 機器上,union 包含一個 double 和一個 char [17],因此其大小可能為 24,因為它需要 64 位對齊)。聯合不能具有 destructor。
這是什麼意思?聯合提供了多種檢視相同記憶體位置的方法,從而可以更有效地使用記憶體。大多數聯合的使用都被 C++ 的面向物件特性所涵蓋,因此它在 C 中更常見。但是,有時在效能很重要或當知道所討論的專案不會被擴充套件時,避免面向物件程式設計的形式主義會很方便。
union Data {
int i;
char c;
};
union 的使用在聯合部分中進行了更詳細的介紹。