局部变量的存储类别 (下)
上面我们讲了自动(auto)变量和静态(static)变量,接下来我们将剩下的部分。
寄存器变量
一般情况下,变量(动态变量或静态变量)一般都存放在内存中,当程序需要用到哪个变量的时候,控制器发出一个指令,将内存中该变量的值发送到运算器中,经过运算器进行运算。如果需要存储数据,那就等运算结束后,再从运算器将数据送回内存。
其实还是蛮好理解的,就是从内存拿了数去运算器运算,算完了结果再返回给内存存储。但是如果遇到一些变量频繁的使用,我们就要频繁的执行取了算-算了存这样的操作,比如我们要循环100000次,这样我们每次存取的过程都会非常浪费时间。
为了解决这样的问题,程序允许我们将数据存放在 CPU 的寄存器中,需要的时候从寄存器中取数据到运算器就好了。你会发现这还是一个取了算-算了存的过程,怎么会解决我们存取时浪费时间的问题呢?
因为数据在 CPU 寄存器中读取的速度远大于在内存中的速度,就好像从老式软盘升级到了 SSD 固态硬盘。所以我们的存取过程的时间大幅度节省了。