5


0

C#ではStructLayoutAttribute.Packを提供していますが、その動作は「すべてのメンバが少なくとも指定された配置を取得するかどうか」であるのに対し、Cの#pragma packの動作は「すべてのメンバが取得する指定されたアラインメントよりも、その場合それ以上になることは保証されていません "#:。

各メンバーでStructLayout(LayoutKind.Explicit)とFieldOffsetを使用するか挿入する以外に、C#の構造体のレイアウトを特定の#pragma packを持つCの類似の構造体のレイアウトと同じにする方法はありますか。未使用のパディングメンバー?

1 Answer


6


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