Ключевое слово restrict применяется к указателям и является указанием компилятору что на участки памяти выделенными под данные указатели больше никакие указатели ссылаться не будут, это может позволить сделать компилятору более эффективный исполняемый код. Контроль за отсутствием ссылок других указателей на restrict указатели лежит на программисте.
char * restrict p1;
int ** restrict p2;
float * restrict p3, * restrict p4;