求助 ——c语言强制对齐的问题。

步道 2013-04-15 09:28:27
#pragma pack(n)

比如
#pragma pack(4)
struct stu{
int a;
char b;
short c;
};
字节是怎么填充的,为什么有空字节,整个结构体的字节是多少?求详解0.0
...全文
240 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
步道 2013-04-15
  • 打赏
  • 举报
回复
我感觉后面的图太给力了 ,图以前看了很迷糊。
sunxingzhe359 2013-04-15
  • 打赏
  • 举报
回复
字节对齐是为了整存争取,想你说的#pragma pack(4)是按四字节进行整存争取,定义的结果体为了整存争取要进行四字节对齐,就是不足4个字节就补充dummy。
Carl_CCC 2013-04-15
  • 打赏
  • 举报
回复
你这个肯定是8,#pragma pack(4) 在32位机器上默认就是这样,4位对齐,你只有#pragma pack(1)才会得到sizeof是7,对齐就是在内存中的最小单位。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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