共用体变量的定义
共用体变量可以采用以下3种形式定义。
1.先定义共用体类型再定义共用体变量
union data
{
short a;
int b;
double c;
};
union data u1, u2;
2.在定义共用体类型的同时定义共用体变量
union data
{
short a;
int b;
double c;
} u1,u2;
3.直接定义共用体变量
union
{
short a;
int b;
double c;
} u1,u2;
上面分别用3种形式定义了共用体变量u1和u2,下面以变量u1为例来分析共用体变量的内存空间的分配情况。假设所使用的C语育编译器中,short类型占用2个字节,int类型占用4个字节,double类型占用8个字节。可以看到成员c所占的内存空间最大,系统为变量u1分配如图所示的8个字节内存空间。
从图中可以知道,共用体与结构体虽然在定义的语法形式上很相似,但是其内存分配方式与结构体完全不同,任何时候内存空间中只能存放一个成员的数据,也就意味着,程序中任何时刻都只能使用共用体变量的一个成员。