«StructLayout» (Решение)

Ответ

8
8

Объяснение

Если явно не задано, то CLR автоматически управляет размещением данных в структуре. В данном случае происходит выравнивание полей по границе 4 байт, в результате чего общий размер структуры составит 8 байт. Пользователь может явно управлять выравниванием. Например, если пометить Foo атрибутом StructLayout следующим образом:

[StructLayout(LayoutKind.Sequential, Pack=1)]
public struct Foo

то мы заставим CLR размещать поля последовательно, выравнивания их по границе 1 байта, в результате чего получим:

Console.WriteLine(Marshal.SizeOf(typeof(Foo))); // Displays '5'

Задача

Last updated