2009-05-18 17 views
3

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

特定の構造体のメンバのアライメントを個別に設定する方法はありますか(VC++固有、私は推測します)?あなたは、アライメントがあなたのニーズにフィットするまで

だから、様々な分野の間でいくつかのダミーバイトを追加パディングバイトをいじることができ、本当に特定の構造アライメント用

答えて

6
+0

非常に便利、ありがとう。この標準またはMS固有のものですか? –

+0

いいえ、gccはhttp://gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.htmlを持っています。 – KIV

+0

#pragmaは実装定義で定義されているため標準ではありません。しかし、GCCもそれらをサポートしています:http://gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html – Joey

0

例:

{unsigned short型X構造体の例。 バイトdummy1; バイトdummy2; バイトdummy3; バイトdummy4; バイトdummy5; バイトdummy6; 符号なし整数y; };ダミーバイトが配置されていないならば

ワーリング(それはオフセット8に配置されている今が、構造体の先頭から4バイト)

、int型はおそらくオフセット4上の場所だっただろう:非常にコンパイラ特有の、そして悪いコードの練習; ^)