【Linux操作系统】字节对齐问题

目录


1. C

  • 原因:

    1. 需要字节对齐的根本原因在于CPU访问数据的效率问题。
  • 目的

    1. 适当编排结构体成员的顺序,可以在保存相同信息地情况下尽可能节约内存空间。

1.1. 问题

  1. 字节不对齐, 易触发段错误;

1.2. 措施

  1. 在定义结构体,定义数组时,要多注意字节对齐的问题;

    1. 定义数组时, 注意以字节为单位;
  2. 处理建议:

    1. 结构体成员合理安排位置,以节省空间
      跨平台数据结构可考虑1字节对齐,节省空间但影响访问效率
      跨平台数据结构人为进行字节填充,提高访问效率但不节省空间
      本地数据采用默认对齐,以提高访问效率
  3. 控制方法

     #ifdef _64_BIT_
     #pragma pack 8
     #else
     #pragma pack 4
     #endif
    

参考:

  1. C语言字节对齐详解
  2. 理一理字节对齐的那些事
  3. 字节对齐不慎引发的挂死问题

2. Golang


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值