zha*_*nwu 3 c++ memory-management
为什么以下代码中类cl1的大小是8而不是5,而类cl2的大小是1?
class cl1 {
public:
int n;
char cb;
cl1();
~cl1();
};
class cl2 {
public:
char cb;
cl2();
~cl2();
};
Run Code Online (Sandbox Code Playgroud)
编译器可以在类成员之间和之后插入填充,以确保变量正确对齐等.确切地说,插入的填充取决于实现.在这种情况下,我猜测编译器之后添加了3个字节的填充cl1::cb,可能是为了确保内存中的下一个变量在4字节边界上对齐.
| 归档时间: |
|
| 查看次数: |
746 次 |
| 最近记录: |