2009-10-08 9 views
5

C#はStructLayoutAttribute.Packを提供しますが、その動作は「すべてのメンバが少なくとも必要なものかどうかにかかわらず、指定された配置を取得します」、C++の#pragma packの動作は「各メンバは、指定されたアラインメント以上のものを望む場合、それ以上のことを保証するものではありません。C#にはC++の#pragma packと同等の機能がありますか?

StructLayout(LayoutKind.Explicit)とそれぞれのFieldOffsetを使用する以外に、C#の構造体のレイアウトをC++の特定の#pragma packのレイアウトと同じにする方法はありますかメンバー、または未使用のパッディングメンバーを挿入しますか?

+0

表示されている違いと問題の原因を示すコード例を提供できますか? StructLayout.Packは常に私のニーズをカバーしています。 –

答えて

6

StructLayout.Packを試した後、実際にはC++の#pragma packとまったく同じことをしているようです。 StructLayout.PackのMSDNドキュメント(私の元の投稿に記述されている動作を主張している)を信じるのは間違いでした。

関連する問題