Извините, если вы чувствуете, что на это отвечали много раз, но мне нужны ответы на следующие вопросы!
-
Почему данные должны быть выровнены (на границах 2 байта /4 байта /8 байтов)? Здесь я сомневаюсь, что если у процессора есть адресные линии Ax Ax-1 Ax-2... A2 A1 A0, то вполне возможно последовательно обращаться к ячейкам памяти. Так почему же необходимо выровнять данные по конкретным границам?
-
Как найти требования к выравниванию, когда я компилирую код и генерирую исполняемый файл?
-
Если, например, выравнивание данных является 4-байтовой границей, означает ли это, что каждый последующий байт расположен по смещению по модулю 4? Я сомневаюсь, что если данные выровнены с 4 байтами, значит ли это, что если байт находится на 1004, то следующий байт на 1008 (или на 1005)?