码迷,mamicode.com
首页 > 其他好文 > 详细

共用体

时间:2020-03-14 22:12:10      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:char   商品   span   long   out   nio   管理   and   bsp   

union是一种数据格式,它能够存储不同的数据类型,但只能同时存储其中的一种类型。

union one4all
{ 
int int_val;
lnog long_val;
double double_val;
}

可以使用one4all变量来存储int,long或double,条件是在不同的时间进行:

one4all pail;
pail.int_val=15;
cout<<pail.int_val;
pail.double_val=1.38;
couy<<pail.double_vail;

某些时候使用共用体可以节省空间。例如:管理一个小商品目录,其中有一些商品ID为整数,另一些为字符串,可以使用共用体:

struct  widget
{
char brand[20];
int type;
union id
{
   long id_num;
   char id_char[20];
}id_val;
};
....

widget prize;
...
if(prize.type==1)
{
cin>>prize.id_val.id_num;
}
else
{
cin>>prize.id_val.id_char;
}

匿名共用体没有名称,其成员将成为位于相同地址处的变量,每次只有一个成员时当前成员

struct  widget
{
char brand[20];
int type;
union 
{
   long id_num;
   char id_char[20];
};
};
....

widget prize;
...
if(prize.type==1)
{
cin>>prize.id_num;
}
else
{
cin>>prize。id_char;
}

由于共用体是 匿名的,因此id_num和id_char被视为prize的两个成员,他们地址相同,所以不需要中间标识符id_val.

 

共用体

标签:char   商品   span   long   out   nio   管理   and   bsp   

原文地址:https://www.cnblogs.com/liu6666/p/12494485.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!