关于结构体中变量类型顺序对结构体大小的影响疑问。

karotoo 2008-03-22 08:50:46
不知道大家有没有遇到过这种情况:
#include <iostream>
using namespace std;
class A{
char a;
char c;
int b;
};
void main()
{
A a;
cout<<sizeof(A)<<endl;
cout<<sizeof(a)<<endl;
}
输出结果为:
8
8

==================================================
#include <iostream>
using namespace std;
class A{
char a;
int b;
char c;
};
void main()
{
A a;
cout<<sizeof(A)<<endl;
cout<<sizeof(a)<<endl;
}
输出结果:
12
12
其中把int变量放在最前边和放在最后边结果一样,但是放在中间结果却不一样,这如何解释啊?
...全文
206 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
great3779 2008-03-22
  • 打赏
  • 举报
回复
内存对齐。即结构体中,位置靠后的成员,其分配的内存空间将不小于其前的成员。推荐楼主,在结构体中,同种类型尽量放在一起。
knift1128 2008-03-22
  • 打赏
  • 举报
回复
内存对齐了~~
Treazy 2008-03-22
  • 打赏
  • 举报
回复
很正常,对齐的问题!
相关推荐
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-03-22 08:50
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下