工作生活

C++之内存对齐

2019-06-30  本文已影响0人  SeatonLv

什么是内存对齐

        编译器为每个“数据单元”按排在某个合适的位置上。

         C、C++语言非常灵活,它允许你干涉“内存对齐”

为什么要对齐

        性能原因:在对齐的地址上访问数据快。

如何对齐

        第一个数据成员放在offset为0的位置

        其它成员对齐至min(sizeof(member),#pragma pack所指定的值)的整数倍。

        整个结构体也要对齐,结构体总大小对齐至各个成员中最大对齐数的整数倍。

默认对齐为8个字节 可以看到运行结果 a与b的地址相差8个字节

修改对齐字节数

1.

2.

上一篇 下一篇

猜你喜欢

热点阅读