C++对齐问题求助
class A{
public:
int a;
double d;
A(){}
virtual ~A(){}
};
我的计算是:4+4+8=16,但实际结果是sizeof(A) =24,其内存分布如下所示:
1> class A size(24):
1> +---
1> 0 | {vfptr}
1> 8 | a
1> | <alignment member> (size=4)
1> 16 | d
1> +---
系统把a放在第八个字节上,但为什么不能放在第4个字节上,也许会说按八字节对齐,但计算机应该是首先一个一个对齐,然后整体对齐