C++Builder 2010结构体不能再字节对齐?????

STM8L103 2010-09-04 06:30:00



#pragma packet(push,1)
typedef struct
{
unsigned char A;
unsigned char B;
unsigned char C;
unsigned short D;
unsigned short E;
unsigned char F;
unsigned short G;
}my_struct;
#pragma packet(pop)




int size;
size=sizeof(my_struct);



本来以为用#pragma packet(push,1)可以使结构体按字节对齐,

今天调试程序总是出错,发现问题在把数组首地址传递给结构体指针后,
结构体元素的数据总是出错。

结构体中的元素并不是在字节排列的,中间有缝隙,导致数据访问错位。



...全文
112 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
STM8L103 2010-09-04
  • 打赏
  • 举报
回复
多谢。
ccrun.com 2010-09-04
  • 打赏
  • 举报
回复
#pragma pack(1)
typedef struct
{
unsigned char A;
unsigned char B;
unsigned char C;
unsigned short D;
unsigned short E;
unsigned char F;
unsigned short G;
}my_struct;
#pragma pack()

13,873

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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