C++之联合体union

时间:2021-01-10 18:50:31

有时需要使几个不同类型的变量共用同一组内存单元,这时可以声明一个联合体.

1、联合体声明的语法形式:

union 联合名{

     数据类型1 成员1;

数据类型2 成员2;

     ...

数据类型n 成员n;

};

2、联合体类型变量声明的语法形式:联合名 变量名; 

3、联合体类型变量的引用形式:联合变量名.成员名;

4、联合体uarea类型变量所占存储空间大小应满足:

  • 大小足够容纳最宽的元素
  • 大小能够被其包含的所有基本数据类型的大小所整除

例如,有联合体类型声明如下:

union uarea{
char c_data;
short s_data;
long l_data;
};

uarea x, y, z;
x.c_data = '1';
y.s_data = 10;
z.l_data = 1234567890;

在uarea中,long型的l_data所占的内存最大,所占联合体所占内存大小应与l_data所占大小相同。在使用联合体时,只能使用其中的某一个成员.