共用体又称为联合体,是由不同的数据类型组成的一个整体。与结构体不同的是,共用体每次只能使用其中一个成员。结构体的总长度是结构体所有成员长度之和,共用体的总长度是其中最长一个数据类型的长度,共用体的所有成员共享这一存储空间。在一些场合中,只需要使用某一类型的变量而其他类型的变量暂时不需要使用。当使用另一类型变量时,原先的变量也转为与程序无关,这种情况下可使用共用体节省同时存在多种数据类型变量所需要的额外空间。
1.共用体的定义
定义共用体使用修饰符 union,一般形式是:
union 共用体名
{
成员列表
};
共用体名是该共用体独一无二的名称,命名规则与变量命名相同。成员项列表是共用体中数据成员的数据类型和名称,数据成员可以是变量、数组或者其他结构体等复合数据结构,各成员通常不使用相同的数据类型。成员项列表的一般形式为:
数据类型 成员名1;
数据类型 成员名2;
数据类型 成员名3;
使用共用体声明变量的一般形式为:
union 共用体名 共用体变量名;
该语句只能在共用体定义后出现。如下例所示:
union unidate
{
char a;
int b;
long c;
doubule d;
};
union unidate x;
共用体成员中,长度最长的是双精度浮点型 d,共用体变量 x 的长度为双精度浮点型数据类型的长度。