«умещать» структуру в памяти? Можете пожалуйста прояснить для меня
ты смотрел ссылку которую я скинул на SO?
там же был пример struct { char x; // 1 байт int Y; // 4 байта char z; // 1 байт }; если бы поле Y не выравнивалось бы на 4, то когда мы обращаемся к полю Y процессору приходилось бы читать 2 машинных слова (конец машинного слова где х и начало где Y), а не одно. Если мы работаем с массивами проблема аналогичная
Я разобрал небольшую статью на хабре и одно видео на ютубе, а ссылку в общих чертах
Ок, доразобрал, спасибо
Потому что процессор оптимизирован на чтение по кратным адресам. А на некоторых процессорах вообще невозможен доступ к невыровненным данным
А кратность, собственно, определяется размером типа и упаковка способствует этой оптимизации?
Нет, размер и выравнивание это два разных свойства, эти значкния не всегда равны
Обсуждают сегодня