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