首页 理论教育 共用体类型的定义|C语言程序设计

共用体类型的定义|C语言程序设计

时间:2023-10-29 理论教育 版权反馈
【摘要】:定义共用体类型的一般形式为:union共用体类型名{成员表列};图8.15共用体结构图例如:union Data{int i;char ch;float f;};定义共用体变量的方法同结构体的定义类似,也有三种。国内有些C语言教材把union译为“联合”或“联合体”,但是“共用体”更能反映该类型占用内存的特点。

共用体类型的定义|C语言程序设计

在编写程序中,有时需要在同一内存单元中存放不同类型的变量。例如:把一个整型变量、一个字符型变量、一个实型变量放在同一个地址开始的内存单元中。如图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译为“联合”或“联合体”,但是“共用体”更能反映该类型占用内存的特点。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈