ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1002702 Топик полностью
fk0, легенда (08.05.2020 19:57, просмотров: 228) ответил il-2 на Поправил свой пример выше - написал "static int x;" Так секретнее :-) И кстати - указатель на const является указателем на данные с модификатором "только чтение". Даже в гарвардовской архитектуре - он не меняет область данных, для этого надо использовать нестандартные ключевые слова - например как int __flash *ptr; в IAR-AVR. По моему так...
Так всегда обращение через указатель, медленно. Я предлагал указатель сделать static const -- тогда оптимизатор всегда твердо уверен в его значении и может выкинуть (обращаться напрямую к x). Гарвардовская архитектура по-разному сделана у разных компиляторов. У пиков -- по адресу понимает (hitech-c, в рантайме выбирает один из двух вариантов обращения по-указателю) если указатель (если переменная -- сразу знает адрес и генерит нужный код), у KEIL C51 нельзя было мешать const 

и не-const (уж не помню деталей, но помню, что замучался, на PC работает, на контроллере -- глюкодром), у AVR как раз __flash, __progmem__ и т.п. дополнительные спецификаторы. У MSP430 не помню как, вроде тоже а-ля x51 (или можно всё const положить в RAM, которой не хватает).

[ZX]