c/c++ 联合体与枚举
联合体
- 思考:
- 假设有一个对象,它可能是 矩形、圆形、三角形;
- 那么这个时候怎么来描述这个对象呢??
- 对象这个的内存,是全部包含了,所有的形状;
- 对内存是一个浪费;
- 为了解决这种内存浪费、就需要使用联合体
- 定义矩形,圆形,三角形;
- 联合体的定义
- union 联合体的名字{联合的每一个项};
- 只有可能存放联合的内容其中的一个;
- 想存什么就什么;
- union 联合体的名字{联合的每一个项};
- 内存布局:每一个联合的项都从联合体的起始内存开始排列;
- 被联合里面占的内存最大的项就是这个联合体的大小;
- 联合体内存大小是最大的一个联合项所占的内存;
- 联合体初始化
- 联合体可以有地址,也可以有指针;
枚举类型
- 用一个有意义的名字来表示整数
- #define WIDTH 400
- 用一组有意义的名字来表示,每个名字是用整数来表示;
- 称作枚举;
- 音乐的类型: WAV,MP3,OGG,AMR……
- 一组类型,每个类型用整数来表示;