内存对其之#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字节

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