参考
https://www.geeksforgeeks.org/structure-member-alignment-padding-and-data-packing/
https://blog.csdn.net/zdl1016/article/details/9665823
原因
因为对于cpu读取内存时是按照数据总线,每次自然读取特定数量的字节。而不是一个字节一个字节的读取。所以如果变量在一个对齐位置上开始放置一个整数,则一个内存读取周期就可以完成对整形数据的读取;如果变量在一个非对齐的位置开始存放,会导致需要两个内存读取周期才能读取完整数据。
Intel 说明
虽然Intel的架构支持非自然边界对齐,但是不建议这么做,因为会影响性能。有些指令需要对齐的数据。
内存数据
小端数据;高位存在高位内存,intel架构
大端数据:高位存在低位内存,符合人类的一般感受