C++ 公用体(union)

共用体的定义

共用体(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;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值