共用体类型也是用来描述类型不相同的数据,但与结构体类型不同,共用体数据成员存储时采用覆盖技术,共享(部分)存储空间。在结构体中增加共用体类型成员,可使结构体中产生动态成员,相当于PASCAl,语言的变体记录。共用体类型在有的书中亦译为联合体类型。
共用体类型的定义
共用体类型定义用关键字union标识,形式为:
union标识符
{成员表};
标识符给出共用体名,是共用体类型名的主体,定义的共用体类型由“union标识符”标识。例如,定义一个共用体类型,要求包含一个整型成员,一个字符型成员和一个单精度型成员:
union icf
{int i;
char c;
float f;
};
共用体变量的定义
共用体变量的定义和结构体变量的定义类似,也有三种方法。同样提倡使用第一种方式来定义共用体变量,考试大整理发布。
(1)先定义共用体类型,再定义共用体变量:
①union共用体名
{成员表};
②union共用体名变量表;
(2)定义共用体类型的同时定义共用体变量:
union共用体名
{成员表}变量表;
(3)直接定义共用体变量:
union{成员表}变量表;
请读者给出共用体变量定义的实例。
对于共用体类型数据,占有的存储空间等于占有存储空间最大的共用体成员所占空间。