C++内存对齐原则(struct长度大小)

一、什么是内存对齐原则

        内存对齐原则指的是,保证各个存储空间的对齐。其目的是为了方便操作系统更加快捷的访问各个存储空间,也就是保证每次访问的偏移量都尽可能规律。

二、结构体strcut的内存对齐原则

        对于C语言的struct而言,如果想计算sizeof(struct)的大小,首先要分为单结构体嵌套结构体两种情况:

2.1 单结构体计算大小

        计算单结构体的长度大小,需要按照以下规则:

规则1        找到当前结构体中,存储空间最大的单元,所有空间都按照这个最大单元的大小存储。注意:上一句话所说的是空间而不是存储单位
规则2        所有单位按照顺序进行存储,如果多个单位可以合并为一个空间,则合并存储

         上述规则文字描述晦涩难懂,我在下边花了几张图举几个例子方便理解:

2.2 嵌套结构体计算大小

        如果结构体A中包含一个结构体B,这结构称为嵌套结构体。最大存储单元按照B中的最大存储单元来算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值