C++之内存对齐

什么是内存对齐

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

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

为什么要对齐

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

如何对齐

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

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

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



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

修改对齐字节数

1.


2.


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。