1. 程式人生 > >使結構體緊湊對齊:__attribute__ ((packed))

使結構體緊湊對齊:__attribute__ ((packed))

  結構體內的成員有時候會為了訪問速度的原因,進行一些對齊,像前面的一篇文章寫的那樣,比如含有一個位元組的char和一個整數int的結構體,大小是8,而不是5.有時候,會不需要這種對齊,
  比如寫一個Bitmap檔案的頭:這些頭資訊可以封裝在兩個結構體中:BITMAPFILEHEADER,BITMAPINFOHEADER,然後才是BMP資料。而這兩個結構體中就的防止位元組對齊的現象出現,我就犯過這樣的錯誤。在linux中用__attribute__ ((packed)) ,在VC中:在需要緊湊對齊的程式碼段前後用#pragma pack(1), #pragma pack()包含