共用体
Posted liu6666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了共用体相关的知识,希望对你有一定的参考价值。
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.
以上是关于共用体的主要内容,如果未能解决你的问题,请参考以下文章