求助:STM32 Keil用sizeof计算结构体字节数遇到的问题。

momodosky 2022-10-17 21:12:44

结构体定义(单字节对齐):

#pragma pack(1)

typedef struct MSG_HEAD
{
  uint8_t   type;
  uint8_t   cmd;
  uint16_t  len;
  uint16_t  dst;
  uint16_t  src;
  uint16_t  msn;
  uint16_t  rnd;
  uint16_t  key;
  uint16_t  para1;
  uint16_t  para2;
} YC_MSG_HEAD_T;

#pragma pack()

#define M_MSG_HEAD_LEN        sizeof(YC_MSG_HEAD_T)

 希望通过sizeof获得结构体字节数,  但不论是M_MSG_HEAD_LEN、sizeof(YC_MSG_HEAD_T)以及sizeof(struct MSG_HEAD),返回的字节数都为8,点解?

在QT环境下,同样代码能够返回正确的字节数。

...全文
355 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
worldy 2022-11-11
  • 打赏
  • 举报
回复

8是你看错了,应该是18吧?

27,511

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧