Visual Studioを使った時のアライメント指定
Visual Studio2005を使った場合でのアライメント指定を。
ちなみに2005でのアライメントのデフォルト値は8です。
コンパイラ実行時で指定するには?
IDE上ではプロパティウィンドウで設定できます。
ソース中で構造体単位で指定するには?
次のようにソース内でpragma命令のpack, popを使います。
#pragma pack(push,4) class Data { int _index; double _value; }; #pragma pack(pop)
このような形にすればアライメントが仮に8でもこの構造体のみは4バイトになります。
ただし64bitCPUなどは構造体のレイアウト(各メンバの並び順)自体,基本は8バイト
と扱うので動作が遅くなるかも…。