内存对齐:c++内存对齐



.计算structsize有两个原则:
#pragma pack(n)
n是编译器对齐字节数

(1)struct中各成员按照对齐原则:在为当前变量(设为a)分配内存时要参考的前所有变量偏移量的和(设为d)d必须是min(n,(a))倍数否则编译器会自动在最后补上缺少字节数(2)待所有变量都分配完毕的后还要比较当前所占内存(设为c)和struct中长度最大变量长度(设为b)c必须是b倍数否则编译器也会在最后补上缺少字节数

2.union
union长度取决于其中长度最大那个成员变量长度即union中成员变量是重叠摆放其开始地址相同
Tags:  c语言对齐 结构体内存对齐 什么是内存对齐 内存对齐

延伸阅读

最新评论

发表评论