Я понимаю, что значит обращаться к памяти так, чтобы она была выровнена, но не понимаю, зачем это нужно. Например, почему я могу получить доступ к одному байту с адреса 0x…1
, но не могу получить доступ к полуслову (двум байтам) с того же адреса.
Опять же, я так понимаю, что если у вас адрес A
и объект размером s
то доступ выравнивается, если A mod s = 0
. Но я просто не понимаю, почему это важно на аппаратном уровне.