特點:共享記憶體,長度由最大位元組型別決定
例如:
union data
;
data在64位作業系統下就是8位元組,由最長double決定
data user;
std::cout << sizeof(data) << std::endl;
結果為8是顯然的
然後看一下各個成員的記憶體
std::cout << &user.ihp << std::endl;
std::cout << &user.fhp << std::endl;
std::cout << &user.shp << std::endl;
結果如下:
結論:他們共享一8位元組記憶體
c++17標準中,匿名也已不是問題,與結構體的匿名類似,例如下:
union
ls;
適用情形:只需臨時使用一次的聯合體,使用案例
struct data
ls; double db;
};
union聯合體學習
union,中文名 聯合體 共用體 在某種程度上類似結構體struct的一種資料結構,共用體 union 和結構體 struct 同樣可以包含很多種資料型別和變數。不過區別也挺明顯 結構體 struct 中所有變數是 共存 的 優點是 有容乃大 全面 缺點是struct記憶體空間的分配是粗放的,不管...
union聯合體學習
union,中文名 聯合體 共用體 在某種程度上類似結構體struct的一種資料結構,共用體 union 和結構體 struct 同樣可以包含很多種資料型別和變數。不過區別也挺明顯 結構體 struct 中所有變數是 共存 的 優點是 有容乃大 全面 缺點是struct記憶體空間的分配是粗放的,不管...
c語言 union聯合體
linux中聯合體union實現判斷little endian 和 big endian 大端和小端 1 聯合體的資料成員從低位元組開始對齊 2 little endian 和 big endian。little endian 和 big endian 是 cpu 存放資料的兩種不同順序。對於整型 ...