BITMAPFILEHEADERを使って読み込んだBMPファイルの構造を調べようとしたらうまく値が取れなかった。それはアラインメントが原因と分かった。調べてみたところアラインメントを調整する #pragma pack という命令があった。
#pragma pack(push, 2) // アラインメントを2バイトに変更 // 構造体の定義など #pragma pack(pop) // アラインメントを元に戻す
その他アラインメントを調整する命令として、__declspec(align(#)) がある。こちらはVisualC++でのみ使える。
アライメントを調べているときに分かりやすいページを見つけたのでリンク。
http://www1.kcn.ne.jp/~robe/cpphtml/html03/cpp03014.html