int f (int *restrict x, int *restrict y)
{
...
*x = 0;
*y = 1;
return 0;
}
//这个关键字是编译器优化关键字。
//首先,x和y这两个参数是相同类型的
//所以执行的时候可能,x,y指向同一个地方,y改变定会改变x
//所以编译器为了正确,在x,y每次操作都会重新读取一次。
//restrict为此而生,告诉编译器,这两个相同类型的不指向同一地方,你可以自己优化。所以接下来的操作就会直接读缓存。