在C编程语言(99标准之后)中,引入了一个新的关键字,称为strict。
- strict关键字主要在指针声明中用作指针的类型限定符。
- 它没有添加任何新功能。这只是程序员告知编译器可以进行的优化的一种方式。
- 当我们将限制与指针ptr一起使用时,它告诉编译器ptr是访问它所指向的对象的唯一方法,并且编译器不需要添加任何其他检查。
- 如果程序员使用strict关键字并违反上述条件,则结果是未定义的行为。
- C++不支持limit。它是仅C的关键字。
// C program to use restrict keyword.
#include
// Note that the purpose of restrict is to
// show only syntax. It doesn't change anything
// in output (or logic). It is just a way for
// programmer to tell compiler about an
// optimization
void use(int* a, int* b, int* restrict c)
{
*a += *c;
// Since c is restrict, compiler will
// not reload value at address c in
// its assembly code. Therefore generated
// assembly code is optimized
*b += *c;
}
int main(void)
{
int a = 50, b = 60, c = 70;
use(&a, &b, &c);
printf("%d %d %d", a, b, c);
return 0;
}
输出:
120 130 70
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。