BitMap ファイルのヘッダーをマップするために構造体を使用しようとしています。コンパイラは 4 バイト (32 ビット) のアライメントを行っているようですが、2 バイトが必要です。以下のようにコンパイラディレクティブを介してそれを変更しようとしました
#pragma pack(2)
と
__attribute__ ((aligned(xx)));
この2つは効果がないようです。これを行う別の方法はありますか?Mac OS X Lion で XCode 4.3 を使用しています。Apple LLVM と Apple GCC コンパイラの両方をテストしました。
構造体型の定義は次のとおりです
typedef struct {
int16_t bfType;
int32_t bfSize;
int16_t bfReserved1;
int16_t bfReserved2;
int32_t bfOffBits;
int32_t biSize;
int32_t biWidth;
int32_t biHeight;
int16_t biPlanes;
int16_t biBitCount;
int32_t biComression;
int32_t biSizeImage;
int32_t biXPelsPerMeter;
int32_t biYPelsPerMeter;
int32_t biClrUsed;
int32_t biClrImportant;
} THeader;