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