关于结构体的字节对齐

1.首先对于结构体,是用户自定义的一种数据类型,组成结构型数据的每个数据称为结构型数据的成员

结构体我们一般定义的形式:

struct 结构体名

{

        数据类型 成员名1;

        数据类型 成员名2;

        :

        数据类型 成员名n;

}

2.关于结构体的字节对齐

因为结构体的数据类型类型是用户自己定义的,结构体的所占空间字节大小是我们关注的重点。

 例如上图,会认为所占字节大小是7,char类型占1个字节,int类型占4个字节,short类型占2个字节,但并不是的。在结构体当中,定义变量开辟空间时,会根据结构体成员类型当中的int类型所占空间大小开辟。

所以上图,开辟的都是4个字节的空间,首先char类型c变量占1个字节,但剩余3个字节对于int类型i变量是不够的,char类型变量c就会直接占用4个字节,int类型变量i占用4个字节,short类型变量s是占2个字节,但在这个结构体中,会直接占用4个字节。

综上所述,这个结构体所占的空间大小是12个字节。

3.总结

关于结构体的字节对齐一定要完全理解,另外在定义结构体时,也要考虑怎样能够使得所占空间较小,这样比较节省空间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值