restrict 关键字主要在指针声明中用作为指针的类型限定符。它并不会添加任何新功能。它允许您将有关可能的最优化的信息告知编译器。将 __restrict
与指针搭配使用即可告知编译器,该指针是访问所指向的对象的唯一途径,并且该编译器无需执行任何额外检查。
注释: 如果程序员使用 restrict 关键字并违反上述条件,则可能发生未定义的行为。
以下是指针(默认)不含混叠的另一个示例。
图 1. 无混叠示例
应用 restrict 关键字以改善性能。以下示例显示了与其它指针之间不存在存储器依赖关系。
图 2. 与其它指针之间不存在存储器依赖关系