IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    linux gcc编译字节对齐设置方法

    admin发表于 2013-01-25 09:40:00
    love 0

    使用#pragma pack(n)

    • 伪指令#pragma pack (n),编译器将按照n 个字节对齐
    • 伪指令#pragma pack (),取消自定义字节对齐方式
    #pragma pack(1)
    struct my_align_struct {
      uint32 u0:8;
      uint32 u1:8;
      uint32 u2:8;
      uint32 u3:16;
    };
    #pragma pack()
    sizeof(my_align_struct) == 5 // 默认情况下gcc是按照四字节对齐的,sizeof(my_align_struct) == 8.
    

    使用__attribute__属性

    struct my_align_struct {
      uint32 u0:8;
      uint32 u1:8;
      uint32 u2:8;
      uint32 u3:16;
    }__attribute__((packed, aligned(1)));
    

    您可能对下面文章也感兴趣:

    • 关于编译器字节对齐的解释与原因
    • linux gcc 下使用总结【继续更新】


沪ICP备19023445号-2号
友情链接