问题:内存对齐、sizeof计算的字节数不对

25 篇文章 1 订阅

1. 脑补内存对齐:

百度https://baike.baidu.com/item/%E5%86%85%E5%AD%98%E5%AF%B9%E9%BD%90/9537460?fr=aladdin

2. 实验一下:

编译如下的c文件:使用命令gcc main.c

#include <sys/types.h>

#pragma pack(1)
typedef struct _CmdRfidReset {
    //unsigned char a;
    unsigned short int b;
    unsigned char c;
    unsigned char d;
    unsigned char e;
    unsigned char f;
    unsigned char g;
    unsigned char reserved[8];
    unsigned short int crc;
} CmdRfidReset;
typedef CmdRfidReset tSCmdRfidReset;


int main(){

    struct _CmdRfidResetUpload{
        unsigned char a;             //this is different to tSCmdRfidReset
        unsigned short int b;
        unsigned char c;
        unsigned char d;
        //unsigned char e;   //this is different to tSCmdRfidReset
        unsigned char f;
        unsigned char g;
        unsigned char reserved[8];
        unsigned short int crc;
    } CmdRfidResetUpload;



    printf("sizeof CmdRfidResetUpload = %d\n", sizeof(CmdRfidResetUpload));

    printf("sizeof RfidReset= %d\n", sizeof(tSCmdRfidReset));

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值