Ⅰ linux下怎麼設置內存對齊
內存對齊是有規則的:
a. 基本類型:所有的基本類型都有相應的對齊參數,編譯器在編譯時,會用全局的對齊參數和當前類型的對齊參數中較小的一個進行對齊。比如,編譯時指定按8bytes對齊(用#pragma pack(8)實現之),可是由於一個char變數的大小為一個byte,所以最後還是按1byte對齊。
b. 復合類型:復合類型的對齊原則,就是取其成員變數數據類型的位元組數的最大者和在編譯時指定的對齊數兩者之間較小的位元組數進行對齊。如果沒有用諸如#pragma pack指定全局對齊數,則該復合類型的對齊數就是其成員變數數據類型位元組數之最大者。