ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
2 мая
1342753 Топик полностью
Nikolay_Po (21.08.2023 17:25, просмотров: 49) ответил SciFi на Это не так работает. В заповедях написано, что переменная static живёт от начала работы программы и до конца. Если взят её адрес, переменную нельзя выкидывать. Всё, больше там ничего нет. Вы просто транслируете распространённые мифы.
Так компилятор и не выкинет переменную (константу), и адрес сохранит. Просто модифицирует адресную арифметику под ту область памяти, куда ему удобно эту константу положить. К примеру, GCC с -O3 -flto, может хранить константы в ОЗУ лишь потому, что для чтения ПЗУ нужна особая процедура, увеличивающая время выполнения кода (к примеру, в AVR). И я не мог заставить программу читать серийный номер прямо из ПЗУ, до тех пор, пока не объявил константу volatile.