Выравнивание означает размещение значения по адресу, кратному требованию его типа. Компилятор добавляет padding между полями структуры и иногда в её конце.
Что такое выравнивание данных в Go?
Выравнивание означает размещение значения по адресу, кратному требованию его типа. Компилятор добавляет padding между полями структуры и иногда в её конце.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Выравнивание означает размещение значения по адресу, кратному требованию его типа. Компилятор добавляет padding между полями структуры и иногда в её конце.
Порядок полей может влиять на размер структуры: небольшое поле перед широким часто оставляет промежуток. Требования зависят от типа и архитектуры, поэтому не переносите размеры с одной платформы без проверки. unsafe.Sizeof и unsafe.Alignof помогают исследовать представление, но оптимизация порядка полей должна учитывать читаемость и контракты сериализации.