ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1019269 Топик полностью
fk0, легенда (18.07.2020 02:03, просмотров: 401) ответил Moлoдoй кoллeгa на Куб генерит проект для IAR 7.80.4
Слово restrict применяемое к аргументам функции говорит, что фрагмент памяти, на который указывает restrict-указатель совершенно точно не будет меняться при записи по другим указателям (в т.ч. restrict) с которыми работает функция. Типичный пример -- memcpy. Если копировать пересекающиеся блоки памяти, то результат может зависет от того, копируется блок в сторону увеличения или уменьшения адресов, поэтому переставить инструкции чтения-записи никак нельзя. Указание restrict 

позволяет компилятору понять, что блоки точно не пересекающиеся (а кому нужны пересекающиеся -- есть memmove). Ключевого слова нет в C89 (только в C99) и нет в C++. Поэтому есть макрос __RESTRICT с пустым определением на платформах, где ключевое слово restrict не поддерживается.

https://ru.wikipedia.org/wiki/Restrict

[ZX]