tgoop.com/unsafecsharp/224
Last Update:
bool не является blittable типом
Давайте для начала разберемся что такое blittable типы и чем они отличаются от unmanaged типов.
В документации шарпа будет написано примерно следующее: blittable типы - это такие типы, которые могут содержать blittable типы :)
Это я, конечно, пошутил, но для неподготовленного человека объясню:
Любой примитив (кроме bool) или любая структура, которая содержит примитивы (кроме bool) или blittable структуры.
Unmanaged типы - это неуправляемые GC типы, т.е. структуры, которые содержат примитивы (любые).
То есть по факту получается, что unmanaged и blittable очень близки, но на самом деле сильно разные.
Blittable типы - это такие типы, которые в памяти на любом компутере будут выглядеть одинаково. Отсюда и проблема с bool, который на разных окружениях может занимать 1 (байт), 2 (шорт) или даже 4 байта (т.к. хранится в виде int).
Unmanaged же не гарантируют ровным счетом ничего подобного, да и не нужно ему это совсем.
Эта инфа будет полезна при бинарной сериализации структур.
#unmanaged #blittable #serialization
BY Unity: Всё, что вы не знали о разработке
Share with your friend now:
tgoop.com/unsafecsharp/224