- 什么是联合体类型
同一段内存单元存放不同类型的变量,使几个不同的变量共享同一段内存的结构,称为 “联合体”类型的结构。
联合体变量,里面的成员变量共用一块内存单元,联合体变量的内存大小是成员变量中占内存最大的变量所分配的内存,任何成员的修改都会影响其它的成员的值,因此,联合体变量的值应该对当前修改的成员变量有效,保存数据的有效性
- 引用共用体变量的方式
只有先定义了共用体变量才能引用它,但应注意,不能引用共用体变量,而只能引用共用体变量中的成员。
例如,前面定义了a,b,c为共用体变量,下面的引用方式是正确的:
a.i a.ch a.f
在使用共用体类型数据时要注意以下一些特点:
(6) 以前的C规定不能把共用体变量作为函数参数,但可以使用指向共用体变量的指针作函数参数。C99允许用共用体变量
作为函数参数。
(7) 共用体类型可以出现在结构体类型定义中,也可以定义共用体数组。反之,结构体也可以出现在共用体类型定义中,
数组也可以作为共用体的成员。
struct TestA union UN
{ {
char c; char c[20];
UN b; struct TestA a;
}; };
UN d[20]; // 共用体数组