C语言中异构的数据结构包括struct和union。
3.9.1 结构struct
结构的所有组成部分都存放在内存一段连续的区域中,指向结构的指针就是结构第一个子节的地址,编译器维护每个类型的信息,指示每个字段的字节偏移。
屏幕快照 2017-10-02 下午5.42.57.png
3.9.2 联合
- 联合提供了一种方式,能够规避C语言的类型系统,允许以多种类型来引用一个对象。
- 一个联合的总的大小等于它的最大字段的大小。
-
联合还可以用来访问不同数据类型的位模式。
屏幕快照 2017-10-02 下午5.50.43.png
3.9.3 数据对齐
数据对齐主要是为了减少处理器与内存间的操作次数。
屏幕快照 2017-10-02 下午6.08.11.png