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

 union one4all
{
int int_val;
double double_val;
long long_val;
}; one4all pail;
pail.int_val = ;//pail存储int型4
pail.double_val = 4.9; //pail此时存储double型4.9,之前的4就被抛弃了

共用体每次只能存一个值,所以它必须有足够的空间来存储最大的成员,所以共用体的长度一般为最大成员的长度。

用途:当数据项使用两种或更多格式(但不会同时使用)时,可节省空间。


匿名共用体 anonymous union

 union widget
{
char brand[];
int type;
union
{
long id_num;
char id_char[];
};
}; widget prize;
if (prize.type == )
cin >> prize.id_num;
else
cin >>prize.id_char;
05-11 14:06