2009-10-08 11 views
5

C# bietet StructLayoutAttribute.Pack, aber sein Verhalten ist "jedes Mitglied erhält mindestens die angegebene Ausrichtung, ob es will oder nicht", während das Verhalten von # Pragma Pack in C++ ist "jedes Mitglied bekommt die Ausrichtung es will, es sei denn will mehr als die angegebene Ausrichtung, in diesem Fall ist es nicht garantiert, mehr als das zu bekommen ".Hat C# eine Entsprechung zu #pragma pack in C++?

Gibt es eine Möglichkeit, das Layout einer Struktur in C# mit dem Layout einer ähnlichen Struktur in C++ mit einem bestimmten # Pragma Pack identisch zu sein, mit Ausnahme von StructLayout (LayoutKind.Explicit) und FieldOffset auf jedem Mitglied oder Einfügen ungenutzter Padding-Mitglieder?

+0

Können Sie ein Codebeispiel angeben, das den Unterschied darstellt, den Sie sehen, und warum es ein Problem verursacht? StructLayout.Pack hat immer meine Bedürfnisse abgedeckt. –

Antwort

6

Nach dem Experimentieren mit StructLayout.Pack scheint es in der Tat genau das gleiche wie #pragma pack in C++. Die MSDN-Dokumentation für StructLayout.Pack (die das in meinem ursprünglichen Beitrag beschriebene Verhalten beansprucht) zu glauben, war ein Fehler.

Verwandte Themen