[C]restrict关键字

C99标准中支持Restrict关键字,用来修饰指针。 用restrict关键字修饰的指针所指向的内容,不会被其他任何指针更改,只能由restrict指针更改
例如:

 int test_restrict(int* x, int* y) { *x = 0; *y = 1; return *x; } 

这是普通的函数,但其实,x y都只更改了各自内容,没交叉更改,所以:

int test_restrict(int* restrict x, int* restrict y) { *x = 0; *y = 1; return *x; }

这个编译器会直接优化return *x变成 return 0.因为途中没有进行其他更改。

你可能感兴趣的:(C/C++)