Можно ли использовать переменную const для объявления размера массива в C?
Почему следующий код выдает ошибку?
const int a = 5;
int b[a]={1,2,3,4,5};
А также, когда я попытался скомпилировать приведенный выше код без "Const» Ключевое слово, я получил ту же ошибку:
int a = 5;
int b[a]={1,2,3,4,5};
почему это так? В чем ошибка, которую я здесь делаю?
А также еще один вопрос: когда константы заменяются их действительными значениями в коде, т.е. если я объявляю переменную, скажем: const int x = 5; Я знаю, что в ОЗУ не выделяется память для переменной x, но область постоянной переменной в ПЗУ содержит значение 5 и что x просто заменяется значением 5 везде, где x появляется в коде. Но когда это происходит? Время компиляции? Время загрузки? Время предварительной обработки?
PS: я говорю о Embedded C (работающей на микроконтроллере и т. Д.), А не C, работающей на моем рабочем столе. Поэтому встроенная система обязательно должна иметь ПЗУ (Flash, EEPROM ...). Что будет потом?