关键字restrict简介
生活随笔
收集整理的這篇文章主要介紹了
关键字restrict简介
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
c99中新增加了一個(gè)類型定義,就是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. 我不知道確切應(yīng)該怎么翻譯,大意是restrict只對(duì)指針有用,它聲明一個(gè)指針是唯一初始化訪問一個(gè)數(shù)據(jù)對(duì)象。 比如,按照書上的例子:
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指針就不是,因?yàn)閜ar即沒有初始化也不是唯一訪問ar數(shù)組的變量。
那么,上面的程序,因?yàn)閞estar是唯一反問數(shù)據(jù)塊的指針,所以編譯器可以對(duì)它優(yōu)化為一條語句, restar[n] += 8; /* ok replacement */ 而par就不可以, par[n] += 8; / * gives wrong answer */
轉(zhuǎn)載于:https://www.cnblogs.com/kingcat/archive/2013/01/05/2845648.html
總結(jié)
以上是生活随笔為你收集整理的关键字restrict简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 移动端去除横向滚动条
- 下一篇: 第2天:Ansible-Inventor