Pha*_*rap 0 c++ memory standards object language-lawyer
在C++中,如果我声明一个类/结构:
struct Data
{
int member0;
int member1;
};
Run Code Online (Sandbox Code Playgroud)
在大多数编译器中,member0在对象表示中出现的比较早member1.
标准是否要求这种行为,或者理论上是否允许编译器放在对象表示member1之前member0?
标准对此有何看法,它在哪里说出来?
(如果强制行为在任何时候发生了变化,我对所有标准版本感兴趣.)
分配具有相同访问控制的(非联合)类的非静态数据成员,以便后面的成员在类对象中具有更高的地址.未指定具有不同访问控制的非静态数据成员的分配顺序.实施对齐要求可能导致两个相邻成员不能立即分配; 因此可能需要空间来管理虚拟功能和虚拟基类.
由于两个你的会员是public,member0可以保证被之前存储member1.
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |