【发布时间】:2010-09-21 19:35:37
【问题描述】:
这是Rob Walker 的回答here 引发的问题。
假设我像这样声明一个类/结构:
struct
{
char A;
int B;
char C;
int D;
};
假设这些成员将在内存中完全按照该顺序声明是否安全,或者这是依赖于编译器的事情?我之所以这么问是因为我一直认为编译器可以对它们做任何事情。
这就引出了我的下一个问题。如果上面的例子导致内存对齐问题,为什么编译器不能隐式地把它变成这样的东西:
struct
{
char A;
char C;
int B;
int D;
};
(我主要是在询问 C++,但我也有兴趣听到 C 的答案)
相关主题
【问题讨论】:
标签: c++ memory memory-alignment