>>324
http://seclan.dll.jp/c99d/c99d07.htm
ここの7.6当たりを参照

ポインタのエイリアス問題でぐぐってもよい
要するにポインタを介した変数のアクセスは、他のポインタによって知らない間に
書き換えられてしまう危険性があるために、使う前にいちいちロードし直す手間が
かかり、それが最適化の妨げになっている

restrictはこのエイリアス問題が存在しない事をコンパイラに伝えるので、他の
ポインタによって書き換えられる事がないのを前提にコンパイルするのでFORTRAN
と同等の効率が出るし、マルチスレッドでも役立つ事が多い

ただし複数のポインタの参照範囲が重なるとたちまちバグるので、それはユーザーの
責任になる