ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
30 июня
48528 Топик полностью
Bill (16.01.2006 14:05, просмотров: 2) ответил solder на Усложняем задачу
sprintf_P (Str,"Hello Word"); Сия функция использует форматную строку из программной памяти. А использовать только const нельзя. Этот квалификатор говорит только о том, что "переменная" не может быть изменена, и всякая попытка выполнить присвоение ей какого-то нового значения в программе будет пресекаться компилятором немедленно. Но размещаться константы могут везде: и в оперативной памяти, и в программной. И вообще, это ключевое слово описано в стандарте ANSI, которыый появился задолго до AVR. IAR мог сделать такое соглашение, по которому данные с квалификатором const размещались бы автоматически в программной памяти, но не стал этого делать. Я думаю, что одной, если не главной, из этих причин было то, что доступ к программной памяти в классических AVR90S был более медленным, по сравнению с доступом к данным в ОЗУ. Сейчас, конечно, разницы особой нет, но соглашение осталось. Да и классическое семейство AVR до сих пор выпускается.