如何解决为什么结构存储的字节数超过了其定义?
输入以下代码:
#include <iostream>
using namespace std;
int main() {
struct people {char name[50]; int tt; int gg;};
struct people p1;
cout << sizeof(p1);
return 0;
}
输出为60。为什么?struct
仅需要50 + 4 + 4 = 58个字节。如果将name[50]
更改为name[20]
,我们将得到输出:28如预期。
与结构成员使用的内存是连续的并不矛盾?。
解决方法
为了提高效率(主要是执行速度),编译器会将Start-Process $dest
变量对准4字节边界。因此,您的结构的布局为:
int
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。