3

Visual C++ では、プロジェクトのプロパティ ページで構造体メンバー alignemnt を選択できます。問題は、この構成がプロジェクト内のすべての構造に使用されていることです。

特定の構造体のメンバーアラインメントを個別に設定する方法はありますか (VC++ 固有だと思います)。

4

3 に答える 3

6
#pragma pack

http://msdn.microsoft.com/en-us/library/2e70t5y1(VS.80).aspx

于 2009-05-18T17:54:13.947 に答える
1

#プラグマパック

于 2009-05-18T17:54:42.557 に答える
0

本当に特定の構造アラインメントについては、パディングバイトをいじることができます

そのため、アラインメントがニーズに合うまで、さまざまなフィールド間にいくつかのダミー バイトを追加します。

例:

構造体の例 { unsigned short x; バイトダミー1; バイトダミー2; バイトダミー3; バイトダミー4; バイトダミー5; バイトダミー6; unsigned int y; };

ダミー バイトが配置されていない場合、int はおそらくオフセット 4 に配置されていたでしょう (構造体の先頭から 4 バイト、現在はオフセット 8 に配置されています)。

警告: 非常にコンパイラ固有であり、悪いコード プラクティス ;^)

于 2009-05-18T17:58:35.390 に答える