c++ - 限制限定符和指针算术

标签 c++ c

递增或递减限制限定指针是否不会保留别名假设?

// a and b point to disjoint arrays
void foo(size_t n, double * __restrict a, double * __restrict b) {
    size_t i;
    double x, y, z;
    double * c = b; // copy
    for(i=0; i<n; ++i) {
        x = *(a++);     // not aliased
        y = *(b + i);   // not aliased 
        z = c[i];       // not aliased
    }
}

谢谢。

最佳答案

是的。 restrict 限定符是指针类型的一部分,当您递增、递减或赋值时,该类型不会改变。

关于c++ - 限制限定符和指针算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6087160/

上一篇:c 快速排序不工作

下一篇:C 模数和余数

相关文章:

c - Mmap和结构

c - 用于检查属性值的适当 C API

c - 为什么在 XV6 中常量 PHYSTOP 被定义为 0xE000000?

c++ - GetSystemTimes() 的问题

c - 移动数组的启发式

c - 这个死锁隐藏在哪里?

c++ - 为什么字符串不会出现左操作数所需的错误左值?

c++ - 为什么 cmake add_dependencies 不适用于带有 CUDA 代码的库?

c++ - 如何在测试系统中自动注册测试用例?

c++ - MFC新手: how to determine if a character is hexadecimal using "FindOneOf()"