——可用于存盤多種資料型別資料,但只能同時存盤其中一種的一個值
union one4all
{
int int_val;
long long_val;
double double_val;
};
one4all pail;
pail.int_val = 15; // store an int
cout << pail.int_val;
pail.double_val = 1.38; // store a double, int value is lost
cout << pail.double_val;
pail有時可以是int變數,有時可以是double變數...由于共用體每次只能存盤一個值,因此共用體的長度為其最大成員的長度,
用途:
當資料項使用兩種或更多種格式(但不會同時使用)時,可節省空間;它常用于作業系統資料結構或硬體資料結構,
需要注意的是:程式員負責決定當前哪個成員是活動的,也就是說程式無法自己判斷或使用當前共用體使用的成員
匿名共用體:
——匿名共用體沒有名稱,其成員將成為位于相同地址處的變數,每次只有一個成員是當前的成員
struct widget
{
char brand[20];
int type;
union
{
long id_num; // anonumous union
char id_char[20]; // other widgets
};
...
widget prize;
...
if (prize.type == 1)
cin >> prize.id_num; // 使用變數id_num
else
cin >> prize.id_char; // 使用變數id_char
由于共用體是匿名的,因此id_num和id_char被視為prize的兩個成員,它們的地址相同,所以不需要中間識別符號id_val
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/17327.html
標籤:C++
上一篇:Visual Studio Code 配置C/C++環境
下一篇:C++基礎之運算子多載
