> -- Comdiv писал(а):
> Не знаю о чём речь. В мире "вульгарного Си" размеры экземпляров тоже могут отличаться от тех, которые можно понять из текста описания. Вплоть до растяжимого понятия байта, да и скрытые поля не запрещены.
Вы говорите о различных настройках выравнивания в "вульгарном" Си. Это - единственное место "магии". Но оно - часть модели/стандарта языка и реализации компиляторов. В Си скрытые поля - лишь заполнители компилятором для выравнивания. Да и очерёдность полей в экземпляре не разнится с описанием их в исходнике.
А вот в Си-шарпе уже так утверждать - чревато.
В языках с поддержкой ООП появляются служебные поля в экземплярах. И - начинаются "нюансы" и "фокусы".
Вопрос остаётся: ЧТО возвращает SIZE? КАКОЙ размер? Нам ЭТОТ размер нужен, или, как в СИ-шарпе нужно специальный метод вызывать, типа GetSize, GetInstanceSize, GetMarshallSize и/или пристально ещё и на атрибутику типа смотреть?

ОБНОВЛЕНИЕ: А вот ещё, например в Scheme  или Pharo - вообще на счёт размера экземпляра очень скользко инфу получать... Для меня, например до сих пор (просто тесно не связывался, не "прижимало" ещё) их FFI - магия.