大致看了看數據對齊,不知道是否正確,總結以下:spa
struct Ablog
{編譯器
char name;編譯
double dHeight;class
int age;變量
};im
sizeof(A) = (1+7+8+4+4) = 24; 總結
這是編譯器默認下的對齊方式,struct和class一致。數據
若是人工添加代碼設置對齊方式,以下img
#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的倍數。