分配的内存空间为12
32位,与4字节对齐时占用的字节数为12字节。
16位2字节对齐占用的字节数为6字节。源代码如下:
#include执行结果如下
扩展信息:
结构体的内存空间对齐规则
1数据成员对齐规则:对于结构体(或联合体)的数据成员,第一个数据成员设置为偏移0。以后,每个数据成员将按#指定的值之间较小的值对齐。pragmapack和数据成员本身的长度。
2结构体(或联合体)作用域的一般规则:数据成员完成各自的作用域后,结构体(或联合体)本身必须是基于值的,并且结构体(或联合体)使用较小的值数据成员的最大长度。
3结合1和2,可以得出结论:当#pragmapack的n值等于或超过所有数据成员的长度时,n值的大小将不起作用。
参考来源:-结构