restrict關鍵字在C ++中的含義是什么?我總是不確定,在C ++中,restrict關鍵字是什么意思?是否意味著賦予函數的兩個或更多指針不重疊?還有什么意思?
3 回答

慕容3067478
TA貢獻1773條經驗 獲得超3個贊
雖然restrict
它還不是C ++標準的一部分,但它得到了許多編譯器的支持,他建議在可用時使用它:
限制關鍵字
!1999年ANSI / ISO C標準的新成員
!尚未使用C ++標準,但許多C ++編譯器都支持它
!只有提示,所以可能什么都不做,仍然符合要求
限制合格的指針(或參考)......
!...基本上是對編譯器的承諾,對于指針的范圍,指針的目標只能通過該指針(以及從中復制的指針)訪問。
g ++似乎也支持這個,因為下面的程序在g ++上完全編譯:
#include?<stdio.h>?int?foo(int?*?__restrict__?a,?int?*?__restrict__?b)?{?return?*a?+?*b;?}?int?main(void)?{ ?int?a?=?1,?b?=?1,?c;?????c?=?foo(&a,?&b);?????printf("c?==?%d\n",?c);?return?0;?}
- 3 回答
- 0 關注
- 1324 瀏覽
添加回答
舉報
0/150
提交
取消