为了账号安全,请及时绑定邮箱和手机立即绑定

restrict关键字在C ++中的含义是什么?

restrict关键字在C ++中的含义是什么?

C++
慕莱坞森 2019-08-06 14:12:58
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; }



查看完整回答
反对 回复 2019-08-06
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

没有。它被添加到C99标准中。


查看完整回答
反对 回复 2019-08-06
  • 3 回答
  • 0 关注
  • 1279 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信