【帮助】请问下面这个结构体 在64位下占用多少空间?

wwkevin811 2010-11-10 04:35:44
编译发现时32字节。但是不明白哪个字段的长度增加了,在32位机器上是28位
struct _A_header_t {
unsigned int magic_num;
unsigned long long trans_id;
unsigned int len;
unsigned int check_sum;
unsigned int log_id;
unsigned short cmd_no;
unsigned short reserved;
} header; // 28 bytes;
...全文
66 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
foreverlove_fish 2010-11-10
  • 打赏
  • 举报
回复
long 增加了4位
iambic 2010-11-10
  • 打赏
  • 举报
回复
“虽然前面没补齐,却在最后面补齐了。”
改为:
“虽然前面不需要补齐,却在最后面补齐了。”
iambic 2010-11-10
  • 打赏
  • 举报
回复
对齐问题。magic_num占用4字节,trans_id却占用了8个字节,所以给magic_num补了4个字节对齐。不过就算你把trans_id放到最前面,还是32个字节。因为28不是8的倍数,虽然前面没补齐,却在最后面补齐了。

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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