C++中數據對齊

大致看了看數據對齊,不知道是否正確,總結以下: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的倍數。

相關文章
相關標籤/搜索