关于restrict的理解(自用)

通过加上restrict关键字,编程者可提示编译器:在该指针的生命周期内,其指向的对象不会被别的指针所引用。(引自别人说)

我的理解猜测:这样可以让编译器知道在这指针的生命周期内,它指向的内容不会变化。根据它不会变化的提示,相当于它成了一个常量,不再变化。程序中一般是运行的变量,时时刻刻都在变化。这样的提示,给了程序一定的确定性,根据这样的确定性,提升效率。(不要看)

编译器并不是机械地将代码翻译为机械语言,它会进行优化,根据指向不再发生变化这,可以进行优化。 eg:    a = 0;  b = 3;   return a +b;
此时如果程序确定,a 是 0 ,那么就直接返回b , 不用执行 a + b;  的计算。
(适应面可能不那么广)

程序并不是随机的,而是有确定的输入的。那么我对一个数,输入6,那么只要它不再变化,以后引用它的代码,我都可以用立即数6,去取代。而不是访问内存再去寻找。

(这是大多数情况)

如果是从运行中获取的数据,估计会一点优化效果也没有。因为此时代码已经生成完成,但是因为输入是个不能确定的数,所以我们不能用一个立即数来去代替。
如果是内嵌在代码中的数据,那么是可以优化的。
 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值