您的位置:首页 > 其它

关于移植arm程序到x86遇到的struct对齐问题

2016-06-03 13:14 357 查看
简单记录:

1、

arm 32位 enum类型大小是1字节

x86 enum类型是4字节

2、

X86上

#pragma pack(push, 1)//是按1字节对齐

typedef struct

{

    UCHAR ucA;//1

    UCHAR ucB;//1

    UCHAR ucC;//1

    long  laa;//4

    UCHAR ucD;//1

}STTEST1;

#pragma pack(pop)//

sizeof(STTEST1):8

typedef struct

{

    UCHAR ucA;//1

    UCHAR ucB;//1

    UCHAR ucC;//1

    long  laa;//4

    UCHAR ucD;//1

}__attribute__((packed)) STTEST1;//9

sizeof(STTEST1):9

“__attribute__((packed))”在arm上是可以1字节对齐,即sizeof(STTEST1)=8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  arm struct enum