共用体的定义
共用体(union)是一种数据格式,它能够存储不同的数据类型,但同时只能存储一种类型,可看下方例子
union one4all{
int int_ val;
long long_ val;
double double_ val ;
};
我们可以使用one4all变量来存储 int
long
double
类型的数据,但不能是同时进行
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;
共用体的用途
共用体的用途之一是, 当数据项使用两种或更多种格式(但不会同时使用)时,可节省空间。例如,假设管理一-个小商品目录, 其中有一些商品的ID为整数,而另一些的ID为字符串。在这种情况下,可以这样做。
一个例子
struct widget{
char brand[20] ;
int type;
union id{// format depends on widget type
long id_ num;// type 1 widgets
char id_char[20] ; // other widgets
} id_ _val;
};
widget prize;
if (prize.type == 1) //
cin>>prize.id_val.id_num;// use member name to indicate mode
else
cin>>prize.id_val.id_char;