ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
3 июля
1020683 Топик полностью
il-2 (24.07.2020 16:58, просмотров: 380) ответил fk0 на В C++ потому, что const -- это автоматом и static, значит значение SettingsVar известно в момент компиляции модуля и оно не 0xAAAA... В C (где const не static и может где-то ещё инициализироваться, в другом модуле) аналогичного можно добиться при omniscient или LTO оптимизации -- не уверен. Может помочь volatile.
Да, я не написал что модуль .cpp. Однако, как мне кажется в .c будетможет быть то-же самое. SettingsVar - глобальная переменная. 

Еще момент - в других модулях, которые получают доступ к SettingsVar через объявление extern unsigned long const SetingsVar[]; такая оптимизация не выполняется. Не знают они его содержимого :-)