共用体是一种数据格式,能够存储不同的数据类型,但只能同时存储其中的一种类型。
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;