На счёт того что это нужно для процессора, для быстрой чего-то. Я так же не понимаю, но это скорее всего уже дело глубже чем мой вопрос.
Всё просто: процессор работает с памятью не отдельными байтами, а с т.н. "машинными словами" — блоками из нескольких байт. Обычно он кратно степени двойки — 1, 2, 4, 8 и так далее. Поэтому в случае, например, если разместить в памяти число без выравнивания, то для работы с этим числом надо будет прочитать сначала одно машинное слово, сделать сдвиг байтам, чтобы разместить их в нужном порядке в регистре, затем прочитать второе машинное слово в другой регистр, в нём тоже сделать сдвиг байтов, и только после этого "склеить" байты из регистров в одном регистре. Получается надо сделать кучу операций только для того, чтобы прочитать число из памяти. И для его сохранения надо будет всё проделать в обратном порядке. Это будет не очень эффективно. Именно поэтому все данные в памяти почти всегда выравниваются. И по этой же причине обычно в структурах всегда первыми идут поля, которым не нужно выравнивание, а дальше идут уже поля, которым нужно выравнивание. Конечно, это в общем случае, а так — в современных процессорах очень много всего накрутили типа кэшей, прогнозирования ветвлений и прочее, так что там всё несколько сложнее и следует смотреть спецификации на конкретный процессор.