共用体 union

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

 1 union one4all
 2 {
 3     int int_val;
 4     double double_val;
 5     long long_val;
 6 };
 7 
 8 one4all pail;
 9 pail.int_val = 4;//pail存储int型4
10 pail.double_val = 4.9; //pail此时存储double型4.9,之前的4就被抛弃了

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

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


匿名共用体 anonymous union

 1 union widget
 2 {
 3     char brand[10];
 4     int type;
 5     union
 6     {
 7         long id_num;
 8         char id_char[20];
 9     };
10 };
11 
12 widget prize;
13 if (prize.type == 1) 
14     cin >> prize.id_num;
15 else
16     cin >>prize.id_char;

猜你喜欢

转载自www.cnblogs.com/pacino12134/p/10973322.html