http://blog.yam.com/rbt2115/article/28146849
真是太受用了.....
2012年3月24日 星期六
2012年3月19日 星期一
GNU_PACKED
GNU_PACKED
用多少byte來排structure,一般沒有指定會用4byte
ex. 假設有一個 data struct
struct Qoo_s{
int a;
char b;
int c;
}GNU_PACKED Qoo_t;
這樣你覺得會有幾個 byte 來存這個 struct?
答案是 12,因為有 default 會對齊,預設是4個byte做對齊,如果要改就用PACKED改
以原本這例子而言,PACKED 1 就是用 1 byte 來對其,所以這時候只會占 9 byte。好處是空間減少;但是壞處是有可能讓執行的時間變長,fetch phase 會變長。PACKED只會影響在記憶體內的排版
Reference:
[1] http://changeway.pixnet.net/blog/post/7669656-data-structure-alignment
訂閱:
文章 (Atom)