restrict си

Forums:

В стандарте C99 restrict - это ключевое слово , которое может использоваться при объявлении указателя .
Данное слово выражает намерения программиста относительно специфики использования объекта, на который указывает указатель.

restrict
сообщает компилятору , что во время "всей жизни" указателя для доступа к объекту ,на который указывает данный указатель можно использовать только =
данный указатель (как аргумент , переменную в выражениях и т.д.)
или значение напрямую полученное из данного указателя - например так =

имя_указателя +1;

Таким образом restrict ограничивает возможность доступа к объекту с помощью разных указателей (указателей , имеющих разные имена)
а также ограничивает оптимизацию хэш

_____________________________________________
Источники(читать подробнее)=
http://en.wikipedia.org/wiki/Restrict
Ключевые слова и фразы(для поиска)=
In the C programming language, as of the C99 standard, restrict is a keyword that can be used in pointer declarations. The restrict keyword is a declaration of intent given by the programmer to the compiler. It says that for the lifetime of the pointer, only it or a value directly derived from it (such as ?pointer + 1?) will be used to access the object to which it points. This limits the effects of pointer aliasing, aiding caching optimizations. If the declaration of intent is not followed and the object is accessed by an independent pointer, this will result in undefined behavior.