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

C语言程序设计教程:共用体类型定义成果

时间:2023-10-23 理论教育 版权反馈
【摘要】:定义共用体类型的一般形式如下:在这里,“成员表列”定义与结构体类型时成员表列相同,共用体类型成员表列也是由若干成员组成的,每个成员都是该共用体类型的一个组成部分。在结构体中,各成员有各自的存储单元,一个结构体类型变量所占用存储单元的大小是各成员所占用存储单元大小之和。

C语言程序设计教程:共用体类型定义成果

在某些应用场合中,需要一个变量在不同的时候具有不同类型的值,这些不同类型的值所占用的存储空间当然也可能是不同的。例如,设计一个统一的结构来保存学生和教师的信息。无论是学生还是教师,都包括编号、姓名、性别和出生日期等信息。此外,对于学生还有班级编号信息,对于教师还有所属部门的信息。显然,班级编号和所属部门是不同类型的数据。要使这两种不同类型的数据能存放在同一个地方且占据同样大小的存储空间,只有利用共用体(也称为联合体)来解决这个问题。

与结构体类型相似,共用体也是一种数据类型,共用体类型的定义及共用体变量的定义方法与结构体的相应定义和方法是相同的,只要将结构体类型定义和结构体变量定义中的关键字struct改成关键字union即可。

定义共用体类型的一般形式如下:

在这里,“成员表列”定义与结构体类型时成员表列相同,共用体类型成员表列也是由若干成员组成的,每个成员都是该共用体类型的一个组成部分。每个成员也必须作类型说明,其一般形式如下:

类型说明符成员名;(www.xing528.com)

同样,成员名的命名方式也应符合标识符的命名规定。

例如:

也可以将类型声明与变量定义分开。

共用体与结构体有一些相似之处,但两者有本质上的不同。在结构体中,各成员有各自的存储单元,一个结构体类型变量所占用存储单元的大小是各成员所占用存储单元大小之和。在共用体中,各成员共享一段存储单元,一个共用体类型变量所占用的存储单元的大小等于各成员中所占用存储单元最大者的值。

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

我要反馈