C++-结构体内存对齐

发布于 2016-12-13 09:10:45 字数 178 浏览 1229 评论 1

typedef union {long i; int k[5]; char c;} DATE;
struct data { int cat; DATE cow; double dog;} too;

sizeof(too)最后的结果是4+20+8=32,为什么这里不用考虑内存对齐?如果考虑了的话是20+20+20了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜无邪 2017-04-13 10:16:20

我想你理解错了内存对齐的含义了,内存对齐分字对齐(4字节),字节对齐(1字节)等,并不是与结构体中的最大变量类型长度对齐。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文