看内存对齐的情况

本文详细解析了C++中结构体的内存对齐原理,通过具体实例展示了不同类型成员变量如何影响结构体的总大小,并解释了在不同类型的组合下,如何计算结构体的实际占用空间。

struct ll
{
 int a;
 char b;
 double c;
 char d;
}s;
 
struct Foo {

    struct ll m;
   int     c;
}f;
 
int main()
{
 
   cout<<"ll size ="<<sizeof(f)<<endl;
    
}
 

输出结果32;

符合类型的情况下,在ll当中,总体的对齐方式为double类型的,因此应当为8,第一个 a占为4个字节,第二个占为1个字节,由于后面的为double类型,因此应当将其补齐为4个字节,因此前面的攻占为为8个字节,这样后面d的占得字节数目应当为,8个字节,最终ll的字节应当为24个字节,同时整个符合类型FOO占为的标准应当也以8个字节来处理,因此整个的占为长度应当为32位。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值