C# dostarcza StructLayoutAttribute.Pack, ale jego zachowanie jest "każdy członek dostaje co najmniej określone wyrównanie, czy tego chce, czy nie", podczas gdy zachowanie #pragma pack w C++ to "każdy członek otrzymuje wyrównanie, które chce, chyba że to chce więcej niż określone wyrównanie, w którym to przypadku nie ma gwarancji, aby uzyskać więcej niż to ".Czy C# ma odpowiednik pakietu #pragma w C++?
Czy istnieje sposób, aby spowodować, że układ struktury w języku C# będzie taki sam jak układ podobnej struktury w C++ z określonym pakietem #pragma, z wyjątkiem użycia StructLayout (LayoutKind.Explicit) i FieldOffset w każdym członek lub wstawianie nieużywanych członków dopełniających?
Czy możesz podać przykład kodu ilustrujący różnicę, którą widzisz i dlaczego powoduje problem? StructLayout.Pack zawsze zaspokajał moje potrzeby. –