在这里,我们将了解C中的strict关键字。C99版本首次引入了restrict关键字。让我们看看这个限制关键字实际上是什么。
strict关键字用于指针声明,作为指针的类型量词。
此关键字不添加新功能。程序员可以使用此信息告知编译器可以进行的优化。
当strict关键字与指针p一起使用时,它将告诉编译器,ptr是访问此指针所指向的对象的唯一方法。因此,编译器不会添加任何其他检查。
如果程序员使用strict关键字然后违反了上述条件,它将生成一些未定义的行为。
#include <stdio.h> void my_function(int* x, int* y, int* restrict z) { *x += *z; *y += *z; } main(void) { int x = 10, y = 20, z = 30; my_function(&x, &y, &z); printf("%d %d %d", x, y, z); }
输出结果
40 50 30