內存對其之#pragma pack

 

pack(1)時,按一字節對齊,這樣  
  struct   Size{  
  char   c1;       //
1個字節
 
  int   i1;         //
4個字節
 
  float   f1;     //
4個字節
 
  double   d1;   //
8個字節
 
  }   ;  
 
一共17字節
 
   
  pack(2)
時,按二字節對齊,這樣
 
  struct   Size{  
  char   c1;       //
2個字節
 
  int   i1;         //
4個字節
 
  float   f1;     //
4個字節
 
  double   d1;   //
8個字節
 
  }   ;  
 
一共18字節
 
   
  pack(4)
時,按四字節對齊,這樣
 
  struct   Size{  
  char   c1;       //
4個字節
 
  int   i1;         //
4個字節
 
  float   f1;     //
4個字節
 
  double   d1;   //
8個字節
 
  }   ;  
 
一共20字節
 
   
  pack(8)
時,按八字節對齊,這樣
 
  struct   Size{  
  char   c1;       //
4個字節
 
  int   i1;         //
4個字節,和c1一起一共用8個字節
 
  float   f1;     //
4個字節
 
  ....               //
4字節邊界,f1一共用8字節
 
  double   d1;   //
8個字節
 
  }   ;  
 
一共24字節
 
   
  pack(16)
時,按十六字節對齊,這樣
 
  struct   Size{  
  char   c1;       //
4個字節
 
  int   i1;         //
4個字節
 
  float   f1;     //
4個字節
 
  ....               //
4字節邊界,c1,i1,f1一共用16字節
 
  double   d1;   //
16個字節
 
  }   ;  
 
一共32字節

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章