一、struct&union
1. struct
在C中struct结构体将某些基础类型包含在一起,用来描述某种个复杂的数据类型,例如链表节点、树节点,或者用来表示某个对象的数据特征,例如学生记录(包含学号、姓名、年级、专业等信息)。
struct结构体的对齐方式及所占存储空间大小主要取决其包含的各成员的大小(下面有具体原则)。
2. union
在一个union中可以包含多种不同类型的数据类型,一个union类型对象可以接收union中包含的任一种数据类型的数据,这些数据类型共享同一段内存。因此union对象所占的存储空间大小取决于其中包含的占用空间最大的类型,但是这个最大值还必须是其他类型大小的公倍数。
二、字节对其规则:(摘自http://blog.csdn.net/hairetz/article/details/4084088)