美文网首页
restrict修饰指针

restrict修饰指针

作者: kirai | 来源:发表于2016-11-17 18:23 被阅读0次

C99中新增加了restrict修饰的指针:
由restrict修饰的指针是最初唯一对指针所指向的对象进行存取的方法,
仅当第二个指针基于第一个时,才能对对象进行存取。
对对象的存取都限定于基于由restrict修饰的指针表达式中。
由restrict修饰的指针主要用于函数形参,或指向由malloc()分配的内存空间。
restrict数据类型不改变程序的语义。
编译器能通过作出restrict修饰的指针是存取对象的唯一方法的假设,更好地优化某些类型的例程。

restrict是c99标准引入的,它只可以用于限定和约束指针,
并表明指针是访问一个数据对象的唯一且初始的方式.
即它告诉编译器,所有修改该指针所指向内存中内容的操作都必须通过该指针来修改,
而不能通过其它途径(其它变量或指针)来修改;这样做的好处是,
能帮助编译器进行更好的优化代码,生成更有效率的汇编代码.如
int *restrict ptr,
ptr 指向的内存单元只能被 ptr 访问到,任何同样指向这个内存单元的其他指针都是未定义的,
直白点就是无效指针。
restrict 的出现是因为 C 语言本身固有的缺陷,
C 程序员应当主动地规避这个缺陷,而编译器也会很配合地优化你的代码.

相关文章

  • restrict修饰指针

    C99中新增加了restrict修饰的指针:由restrict修饰的指针是最初唯一对指针所指向的对象进行存取的方法...

  • c++ const

    const 可修饰指针常量,可修饰常量指针,可以既修饰指针,也修饰常量常量指针:int a=10;int b=20...

  • __restrict 关键字提升性能

    __restrict 是 C 语言中的关键字,它的作用是为编译器带来附加信息。当对指针增加 __restrict ...

  • 5.const与指针

    1.const修饰指针-常量指针 2.const修饰常量-指针常量 3.const修饰指针和常量 代码如下

  • Object-C 中的强指针与弱指针

    1>强指针:默认情况下,所有的指针都是强指针.我们也可以用__strong修饰。 2>弱指针:用__weak修饰的...

  • const修饰指针变量/引用/对象

    const修饰指针或者指针变量的区别 分辨的规则在于从const起往右读取 被修饰的是指针还是指针变量 const...

  • iOS OC杂文

    1.const const修饰的是其右侧的内容const修饰的是只读的,const *修饰的是指针,所以指针是常量...

  • const关键字的四种用法

    1.修饰变量说明改变量不可以被改变 2.修饰指针,分为指向常量的指针和指针常量指针常量:理解为一个指针类型的常量(...

  • const关键字

    修饰全局变量 常量指针 不能把常量指针赋值给非常量指针,反过来可以。 例子: 修饰类成员函数 参考博客:https...

  • const修饰指针

    今天我看了一下const修饰指针的几种情况,总结一下: 总结一句话就是,const关键字在*之前,修饰的指针所指的...

网友评论

      本文标题:restrict修饰指针

      本文链接:https://www.haomeiwen.com/subject/kezdpttx.html