【关键字】register 使用总结

一. 什么是寄存器?

我们都知道,CPU主要是负责进行计算的硬件单元,但是为了方便运算,一般第一步需要先把数据从内存读取到CPU内,那么也就需要CPU具有一定的数据临时存储能力(CPU并不是当前要计算了,才把特定数据读到CPU里面,那样就太慢了)。

现代CPU内,都有集成一组叫做寄存器和高速缓存(Cache)的硬件,用来做临时数据的保存

在这里插入图片描述

二. 为什么要存在寄存器?

寄存器的存在是为了在硬件层面上,提高计算机的运算效率。这样通过预先缓存,CUP就不需要每次都从内存里读取数据了。

三. register 修饰变量

register 只能修饰局部变量,其作用是尽量将所修饰的局部变量,放入CPU寄存器中,从而提高它的读取效率。

那么什么样的变量,可以采用 register 呢?

  • 首先这个变量必须是局部的(全局会导致CPU寄存器被长时间占用,知道程序终止,这样太浪费寄存器资源了)
    在这里插入图片描述

  • 被高频被读取且不会写入的(写入就需要写回内存,后续还要读取检测的话,register 的意义在哪呢?)

PS:该关键字,现在已经不会有人在使用了,因为现在的编译器已经很智能了,能够进行比人更好的代码优化(会自动识别给需要的变量加上 register )。早期编译器需要人为指定 register,来进行手动优化,现在不需要了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值