大体看了看数据对齐,不知道是否正确,总结如下:
struct A
{
char name;
double dHeight;
int age;
};
sizeof(A) = (1+7+8+4+4) = 24;
这是编译器默认下的对齐方式,struct和class一致。
如果人工添加代码设置对齐方式,如下
#pargma pack (4)
struct A
{
char name;
double dHeight;
int age;
};
sizeof(A) = 1+3+8+4 = 16
首先#pargma pck (n) ,n为对齐数,分为如下情况:1. 如果n大于等于变量字节数,则按照默认对齐 2. 如果n小于该变量的类型所占用的字节数,那么偏移量为n的倍数。