[an error occurred while processing this directive]
Ответ: (+)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SM 12 октября 2005 г. 15:54
В ответ на: про рестрикт - честно говоря не совсем понимаю объяснение отправлено yes 12 октября 2005 г. 13:07

Во первых он может применяться и не только к входным переменным. Никто не мешает пообъявлять локальных переменных-указателей и внутри функции. А объяснение (я думал понятно объяснил) у меня только такое, собственно как и в документации у TI. restrict говорит оптимизатору о том, что данное, куда указывает указатель, может быть изменено только с использованием этого указателя. И по другому указателю доступ именно к этому данному, куда он указывает в данный момент, до модификации этого указателя, ни на чтение, ни на запись, не производится. Это говорит компилятору о том, что не надо после каждой операции с данным по этому указателю его сохранять в память, и не надо каждый раз читать. Смысл этого слова в том, что компилятору сложно самому разобраться во всех пойнтерных перипетиях и высчитать моменты, когда два указателя вдруг укажут на одну ячейку памяти. Ему просто надо сказать - что этого не будет никогда. То есть нет "алиасинга" - указания более чем одним пойнтером на один адрес. А volatile - оно говорит, что данное может быть изменено откуда-то извне, из другого треда, из прерывания, еще откуда-то. Это сюда не относится. Кстати и массивы могут быть restrict, это означает, что никто не применяет какого-то пойнтера, который укажет на элемент массива, одновременно с работой с этим элементом по индексу.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru