class size与align

align算是老生常谈了:

数据按照某个cache line大小align的话会改进cache效率, 因此默认情况下,编译器会自动把class数据进行align;

class与其member的align尤其自己规则,直接导致:

 

struct size
{
uint32 member0;
uint8  member1;
}
;
(sizeof(size)
!= sizeof(uint32) + sizeof(uint8)) is usually  true ;

struct compose_good
{
   uint8 mem0;
   uint16 mem1;
   uint32 mem2;
}
;

struct compose_bad
{
   uint8 mem0;
   uint32 mem1;
   uint16 mem2;
}
;

(sizeof(compose_good)
< sizeof(compose_bad)) is usually  true ;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值