在C中有SELECT
关键字,它告诉编译器函数的指针参数之间没有别名,允许它以这种方式执行一些不允许的优化。例如:
restrict
现在函数体中的指令可以并行执行,因为void add(int* restrict ptrA,
int* restrict ptrB,
int* restrict val)
{
*ptrA += *val;
*ptrB += *val;
}
和某些val
参数之间没有别名。在C ++中,没有ptr
个关键字。
restrict
类似的语义?例如 MSVC , g ++ , clang ++ 和英特尔C ++编译器。restrict
关键字标准化?