C语言结构体字节对齐简单计算方法

1.在C语言里面每一种数据类型都有字节对齐比如在32位操作系统下:整型的自身对齐数就是 4 字节,字符型就是 1 字节,double就是 8 字节。

但是结构体的计算方式就和普通的数据类型不一样。

    在C语言里面字节对齐的方式主要根据“有效对齐数”来确定,那么有效对齐数是怎杨确定的呢?  

  在结构体里面::: 有效字节对齐数 = (自身对齐数 < 最大字节)?(自身对齐数):(最大字节);

  自身对齐数 = 4字节(32位操作系统);(8 字节为32位操作系统)。

  最大字节数 = 结构体里面最大的一个数据类型所占的字节数。

列:struct test{

    char a;

    int  a;

    short  c;

  }d;

sizeof(d) == ? ; //在32位操作系统下为12字节,64位操作系统下也为12字节。(每一次都开4个字节)

  struct  test2{

    char a;

    double b;

    short c;

  }d;

sizeof(d) == ? ;// 在32位操作系统下为16字节(每一次开4个字节),在64位操作系统下为24字节(每一次开8个字节)。

  

转载于:https://www.cnblogs.com/hukblog/p/9541628.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值