关键字restrict简介
c99中新增加了一个类型定义,就是restrict。 restrict的定义是It can be applied only to pointers, and it indicates that a pointer is the sole initial means of accessing a data object. 我不知道确切应该怎么翻译,大意是restrict只对指针有用,它声明一个指针是唯一初始化访问一个数据对象。 比如,按照书上的例子:
int ar[10];int * restrict restar = (int *) malloc(10 * sizeof(int));int * par = ar;
for (n = 0; n < 10; n++){ par[n] += 5; restar[n] += 5; ar[n] *= 2; par[n] += 3; restar[n] += 3;} restar指针是restrict类型,par指针就不是,因为par即没有初始化也不是唯一访问ar数组的变量。 那么,上面的程序,因为restar是唯一反问数据块的指针,所以编译器可以对它优化为一条语句, restar[n] += 8; /* ok replacement */ 而par就不可以, par[n] += 8; / * gives wrong answer */
转载于:https://www.cnblogs.com/kingcat/archive/2013/01/05/2845648.html
关键字restrict简介相关推荐
- C语言的关键字restrict,C语言中restrict关键字学习
简介:程序员 restrict是c99标准引入的,它只能够用于限定和约束指针,并代表指针是访问一个数据对象的惟一且初始的方式.即它告诉编译器,全部修改该指针所指向内存中内容的操做都必须经过该指针来修改 ...
- C语言关键字restrict
简介 关键字restrict只用于限定指针:该关键字用于告知编译器,所有修改该指针所指向内容的操作全部都是基于该指针的,即不存在其他进行修改操作的途径:这样的后果是帮助编译器进行更好的优化,生成更有效 ...
- 关键字Restrict
restrict是c99引入的,关键字restrict只用于限定指针:该关键字用于告知编译器,所有修改该指针所指向内容的操作全部都是基于(baseon)该指针的,即不存在其它进行修改操作的途径.也就是 ...
- C语言关键字restrict(linux 中为 “__restrict”)
C语言关键字restrict(linux 中为 "__restrict") 关键字restrict只可用于指针,表明该指针是访问一个数据对象的惟一且初始的方式. 该关键字的作用是允 ...
- 【C++】关键字restrict的作用
restrict用于限定和约束指针,表示这个指针只访问这块内存的唯一方式,也就是告诉编译器,这块内存中的内容的操作都只会通过这个指针,而不会通过其他变量或者指针. 这个指针有两个作用: 一个是告诉编译 ...
- 关键字 - restrict
说明 restrict是c99标准新增的一个关键字,是一种类型限定符(Type Qualifiers). 作用 程序员通过该关键字告诉编译器,我保证代码中restrict的指针独占其指向的内存,所有访 ...
- C语言中关键字restrict的用法(linux 为 __restrict)
类型限定词restrict 关键字restrict通过允许编译器优化某几种代码增强了计算支持.它只可用于指针,并表明指针是访问一个数据对象的惟一且初始的方式.为了清楚这样做为何有用,我们需要看一些例子 ...
- c语言 编译器关键字,C语言关键字 restrict
restrict是c99标准引入的,它只可以用于限定和约束指针,表明指针是访问一个数据对象的唯一方式.即它告诉编译器,所有修改该指针所指向内存中内容的操作都必须通过该指针来修改,而不能通过其它指针来修 ...
- C语言关键字 restrict(一)
概念: restrict,C语言中的一种类型限定符(Type Qualifiers),用于告诉编译器,对象已经被指针所引用,不能通过除该指针外所有其他直接或间接的方式修改该对象的内容. 渊源: res ...
最新文章
- HDU 3466 01背包变形
- UntraEdit 语法高亮 (MSSQL)
- C++中多态的概念和意义
- java如何获得键值_如何在java中取map中的键值 的两种方法
- php tp 查数据库数据一条_PHP自学(六)TP框架进行数据库查询
- IOS 6 之后 Required background modes
- BugkuCTF-MISC题旋转跳跃
- 测试用例--因果图、判定表法
- 24. Element namespaceURI 属性
- Oracle Telnet 1521 失败
- 大一c语言要学什么,c语言学习计划
- 西门子S7-300PLC采用博途V14编程程序,附带博途WINCC上位机,项目内容甲醛生产线项目,模拟量处理,电机控制等
- c语言if语句用法总结,C语言if语句总结.doc
- Bilibili弹幕文件参数
- PointNet++等3D点云中用到的.cu、.cpp文件的编译的简单理解
- 容联AI获AIIA智能客服最高等级认证
- Vue源码翻译之渲染逻辑链
- 【NOIP2017提高A组集训10.25】摘Galo (树形dp)
- 2. 妈呀,Jackson原来是这样写JSON的
- 【Python Sympy】将表达式化为关于x的多项式,求出多项式系数
热门文章
- 计算机考试前的心情作文,考试时的心情作文(七篇)
- linux查看cpu占用最多的进程,Linux下查看占用CPU资源最多的几个进程
- 将一个数组拼接成一个指定字符串返回
- c语言 增删查 案例,C语言实现单链表的增删查改
- 我的世界java版游戏崩溃_我的世界全攻略之-游戏崩溃的解决方法
- 学习笔记1-Linux1
- Boyer-Moore 投票算法
- leetcode258. 各位相加(简单题,但是你不看答案想不出来)
- insert函数的修改,
- 《Python Cookbook 3rd》笔记(3.1):数字的四舍五入