Справочная информация: Я новичок в 32-битных компиляторах и создаю подпрограммы для управления массивами символов для встроенной системы с использованием недавно принятой цели: процессора SiLabs Leopard Gecko с использованием G CC 32-битного компилятора.
проблема: память в нашей встроенной системе ограничена, и я пытаюсь понять, как компилятор хранит массивы символов, чтобы мы эффективно использовали доступную оперативную память и Fla sh. Компилятор сообщает об использовании ОЗУ, которое увеличивается с шагом 4 байта, что соответствует 32-битному размеру слова по умолчанию (т. Е. От char X [1] до char X [4] все приводит к выделению ОЗУ в 4 байта, char [5] приводит к выделению отчет 8 байт).
Насколько я понимаю, компилятор будет хранить все переменные как 32-битные значения (за исключением длинных и т. д.)
Вопрос: подразумевает ли приведенный выше отчет памяти, что компилятор создает необходимый код сборки, чтобы упаковать char [4] в одно 32-битное слово и обработать разбор байтов, если бы я должен был написать строку, такую как char Y = char Array [2]?