В C каждый байт адресуется индивидуально. Предположим, целое число (скажем, которое использует 4 байта) имеет адрес 0xaddr
(что составляет 32 бита, при условии, что у нас есть 32-битный процессор с 32-битной адресной шиной и 32-битной шиной данных) и предположим, что значение целое число равно 0x12345678
. Теперь, если я извлекаю это значение из памяти, как это делает процессор? Размещает ли процессор 0xaddr
(32-битный адрес) в адресных строках, а затем выборка 8-битных данных, скажем, 0x12
. Затем процессор запустит 0xaddr+1
в адресных строках, а затем извлечет еще 8-битные данные 0x34
и так далее для 4 байтов целого числа? Или процессор просто помещает 0xaddr
и считывает сразу 4 байта, используя при этом полную 32-битную шину данных?