- register——寄存器
了解register之前,应该先认识认识寄存器,何为寄存器?
在计算机中,数据可以存储在远程二级存储(网盘,服务器),本地二级存储(本地磁盘),主存(也称内存),高速缓冲,还有寄存器。
早期内存读写速度与CPU的运行速度相当,CPU可以利用内存完成绝大多数的数据处理,而随着CPU的的运行速度的提升,内存读写速度已经无法满足CPU,于是设计出了存储空间比内存小很多,但是运行速度足够快的寄存器。
寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果,即寄存器集成在CPU上。
寄存器是 CPU 的高速缓存 LI、 L2,缓存容量是在组装计算机时必问的 两个CPU 性能问题之一。缓存结构和大小对 CPU 的运行速度影响非常大,毕竟 CPU 的运行速度远大于内存的读写速度,更远大于硬盘。基于执行指令和热点数据的时间 局部性和空间局部性, CPU 缓存部分指令和数据,以提升性能。但由于 CPU 内部空 间狭小且结构复杂,高速缓存远小于内存空间。
寄存器是有限存储容量的高速存储部件,它们可用来暂存指令、数据和位址。
如果我们设置一个变量
int main(void)
{
int i = 10;
printf("%d\n",i);
return 0;
}
原来这个变量i在内存中的栈区存储
int main(void)
{
register int i = 10;
printf("%d\n", i);
return 0;
}
这里使用register可以让变量i的存储位置更换在寄存器上,以加快运行在处理变量i时的运行速度。
【注意】:现阶段的编译器的处理数据已经很强大,所有编译器会自动将需要进行快速处理的数据放在寄存器中,以便加快运行速度。