1,共用体概念

使几个不同的变量占用同一段内存空间的的结构称为共用体,
共用类型的定义与结构体类型的定义一样
union 共用体名
{
数据类型 成员列表;
};
共用类型变量的定义与结构体变量定义也一样;
分之间定义与间接定义2种;


定义类型的同时定义变量,也可以先定义类型再定义变量;


union [data]
{
int i;
char ch;
float f;
} un1,un2,un3;


共用变量占用的内存空间,等于最长成员的长度,而不是各个成员长度之和;

列如上面的共用体un1,un2,un3,在16位系统占用的内存空间为4个字节是最大的数据类型占用

3,共用体类型特点


1,共用体类型中,系统采用覆盖技术,实现共用变量各成员的内存共享,介于此,在某一时刻存放的和起作用的是最后一次存入的成员值.
由于所有成员共享同一内存空间,共用变量与各成员的地址相同.

共用体变量与结构体变量间区别
结构体类型变量所占内存长度是各成员所占内存长度和,
共用体类型变量,所占内存长度等于最长的成员长度.


4,枚举型


枚举类型定义
enum 枚举类型名 {取值列表};
列如:enum weekdays {星期一,星期二,星期三,星期四,星期五,星期六,星期天};
枚举型仅适应于取值有限的数据


共用体_数据类型

typedef 别名类型申明,类似于linux命令alias;


C语言用typedef给系统数据类型定义别名
用以给已有数据类型定义新的别名,已有数据类型是指由系统提供的标志数据类型,或是自定义的数据类型,

typedef使用说明

共用体_共用体_02

http://netkiller-github-com.iteye.com/blog/1972504