关键字restrict简介
生活随笔
收集整理的這篇文章主要介紹了
关键字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简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 移动端去除横向滚动条
- 下一篇: codeforces 909C. Pyt