为了提高效率,计算机从内存中取数据是按照一个固定长度的
他在内存中存放的位置按4字节对齐
内存对齐是会浪费一些空间的,但是这种空间上的浪费却可以减少取数的时间
以空间换时间
结构体内成员按照自身长队自对齐
自对齐指的是该成员的起始位置的内存地址必须是自身长度的整数倍,、
如int 只能以0 4 8 这类的地址开始
结构体的总大小为结构体的有效对期指的整数倍
对齐跟数据在内存中的位置有关。
需要自己对齐的根本原因在于cpu访问数据效率
对于标准数据类型,他的地址只要是他的长度的整数倍就行了
非标准数据类型按下面
数组:按照基本很数据类型对齐,第一个对齐了后面的自然也就对齐了
联合:按照其包含的长度最大的数据类型对齐
结构体:每个数据类型都要对齐
c语言中,结构是一种复合数据类型,其构成元素可以是基本数据类型
编译器为结构的每个成员按其自然边界分配空间,各个
成员按照他们被声明的顺序在内存总顺醋存储,
第一个成员的地址和整个结构的地址相同