【摘要】:定义共用体类型的一般形式为:union共用体类型名{成员表列};图8.15共用体结构图例如:union Data{int i;char ch;float f;};定义共用体变量的方法同结构体的定义类似,也有三种。国内有些C语言教材把union译为“联合”或“联合体”,但是“共用体”更能反映该类型占用内存的特点。
在编写程序中,有时需要在同一内存单元中存放不同类型的变量。例如:把一个整型变量、一个字符型变量、一个实型变量放在同一个地址开始的内存单元中。如图8.15所示,以上三个变量在内存中所占的字节数各不同,但都从同一地址开始,这就是使用了覆盖技术,使几个变量互相覆盖。这种不同变量共同占用同一段内存的结构,称之为共用体类型结构(简称共用体)。
定义共用体类型的一般形式为:
union共用体类型名
{成员表列};
图8.15 共用体结构图
例如:
union Data
{
int i;
char ch;
float f;
};
定义共用体变量的方法同结构体的定义类似,也有三种。
1.间接定义——先声明类型,再定义变量。
例如,已声明共用体类型union Data,则可定义共用体类型变量:
union Data a,b,c;
2.直接定义——定义类型的同时定义变量。
例如:
union Data(www.xing528.com)
{
int i;
char ch;
float f;
}a,b,c;
3.省略共用体名,直接定义变量。
例如:
union
{
int i;
char ch;
float f;
}a,b,c;
需要注意:
(1)共用体变量所占内存长度等于最长的成员所占内存的长度。例如,上面定义的共用体变量a、b、c各占4个字节(实型为最长成员),而不是各占2+1+4=7个字节。
(2)国内有些C语言教材把union译为“联合”或“联合体”,但是“共用体”更能反映该类型占用内存的特点。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。