首页 理论教育共用体的定义方法与结构体类似

共用体的定义方法与结构体类似

【摘要】:3.共用体变量的定义与结构体变量的定义类似,共同体变量的定义也有三种方法:定义类型的同时定义变量;定义类型后,用类型名定义变量;不给类型名,直接定义变量。

1.共用体的概念

C 语言编程中,有时需要将几种不同类型的变量存放到同一段内存单元中,即几个不同的变量占用同一段内存的结构。这种共用内容单元的结构被称为“共用体”。

2.共用体类型的定义

共用体类型的定义如下:

其中,成员列表中每个成员定义格式为:类型名 成员名。

3.共用体变量的定义

与结构体变量的定义类似,共同体变量的定义也有三种方法:定义类型的同时定义变量;定义类型后,用类型名定义变量;不给类型名,直接定义变量。定义类型的同时定义变量,我们一般称为变量的直接定义;先定义类型,再定义变量,称为变量的间接定义。

(1)间接定义:先定义类型,再定义变量,例如定义data 共用体类型变量un1、un2、un3的语句如下:

(2)直接定义:定义类型的同时定义变量,例如:(www.chuimin.cn)

共用体变量占用内存空间等于最长成员的长度,而不是各成员长度之和。例如共用体un1、un2 和un3,在16 位操作系统中占用内存空间均为4字节。

4.共用体变量的引用

共用体变量的引用与结构体变量一样,也只能逐个引用共用体变量的成员。例如访问共用体变量un1 各成员的格式为:un1.i、un1.ch、un1.f。

5.特 点

(1)系统采用覆盖技术,实现共用体变量各成员的内存共享,所以在某一时刻,存放的和起作用的是最后一次存入的成员值。例如执行un1.i=1,un1.ch='c',un1.f=3.14 后,un1.f 才是有效成员。

(2)由于所有成员共享同一内存空间,共用体变量与其各成员的地址相同。例如& un1=&un1.i=&un1.ch=&un1.f。

(3)不能对共用体变量初始化(结构体变量可以);也不能将共用体变量作为函数参数,以及使函数返回一个共用数据,但是可以使用指向共用体变量的指针

(4)共用体类型可以出现在结构体类型定义中,反之亦然。