У меня есть переменная const
в моей встроенной программе на C. Он определяется и инициализируется 0
в программном коде. Он помещается в специальную область ПЗУ через скрипт компоновщика. Можно изменить содержимое специальной области с помощью специальной процедуры программирования, но она не может быть изменена во время выполнения основной программы.Является ли компилятор C обязательным всегда перезагружать значение const из памяти?
Вопрос в том, должен ли я объявлять константу как volatile
. Если он не помечен как volatile
, то компилятору разрешено заменять все ссылки на него 0
? Или он обязан загружать его хотя бы один раз во время выполнения программы?
Почему вы говорите компилятору, что это const, когда это не так? –
Сделайте это 'const volatile', это именно то, что для' volatile'. –
@EdHeal 'const' не означает, что« это не изменится ». Это означает, что «это не изменится» через эту переменную * ». –