是union 的中文解释,又称为共用体。
各种程序语言 都有这种数据结构,
汇编, C语言, C++ 都有这种数据类型,
它就是把各种基本类型捆绑在一起。
“联合”与“结构”有一些相似之处。但两者有本质上的不同。在结构中各成员有各自的内存空间,一个结构体变量的总长度大于等于各成员长度之和。而在“联合”中,各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度。应该说明的是,这里所谓的共享不是指把多个成员同时装入一个联合变量内,而是指该联合变量可被赋予任一成员值,但每次只能赋一种值,赋入新值则冲去旧值。如下面介绍的“单位”变量,如定义为一个可装入“班级”或“教研室”的联合后,就允许赋予整型值(班级)或字符型(教研室)。要么赋予整型值,要么赋予字符型,不能把两者同时赋予它。联合类型的定义和联合变量的说明:一个联合类型必须经过定义之后,才能把变量说明为该联合类型。
联合的定义
定义一个联合类型的一般形式为:
union 联合名
成员表
成员表中含有若干成员,成员的一般形式为: 类型说明符 成员名
成员名的命名应符合标识符的规定。
例如:
union perdata
int Class;
char Office;
定义了一个名为perdata的联合类型,它含有两个成员,一个为整型,成员名为Class;另一个为字符,字符名为Office。联合定义之后,即可进行联合变量声明,被声明为perdata类型的变量,可以存放整型量Class或存放字符型的变量Office。
联合变量的声明
联合变量的声明和结构变量的声明方式相同,也有三种形式。即先定义,再声明;定义同时声明和直接声明。
以perdata类型为例,声明如下:
union perdata
int Class;
char Office;
union perdata a,b;
或者可同时说明为:
union perdata
int Class;
char Office;
}a,b;
或直接说明为: