这是Rob Walker在此处的回答引发的一个问题。
假设我像这样声明一个类/结构:
struct
{
char A;
int B;
char C;
int D;
};
假设这些成员将在内存中完全按照该顺序声明是否安全,或者这是依赖于编译器的事情?我问是因为我一直认为编译器可以对它们做任何想做的事情。
这就引出了我的下一个问题。如果上面的例子导致内存对齐问题,为什么编译器不能隐式地把它变成这样的东西:
struct
{
char A;
char C;
int B;
int D;
};
(我主要是在询问 C++,但我也有兴趣听到 C 的答案)