register关键字修饰的变量会被保存在CPU内部的寄存器中,该变量就会作为寄存器变量来使用,因为没有必须到内存中寻址,所以访问速度达到最快。如果一个循环中,存在几个需要频繁操作的变量,此时就可以使用register关键字修饰。
使用register关键字有如下注意事项:
register修饰的数据类型必须是CPU可以处理的类型
一般CPU一次只能处理32bit(4个字节)的数据,所以register修饰的类型所占字节数,应该小于等于4个字节,可以是int、short等类型,不建议修饰浮点数类型以及long类型。
不能对register修饰的变量使用取地址符“&”
寄存器是不存在地址的,寄存器变量是保存在寄存器中的,自然也就不存在地址,因此,无法对其做取地址操作。
寄存器变量应该尽可能少
早期的处理器有7种工作模式,工作模式除了有通用寄存器(不同工作模式可以共用的寄存器),每一种工作模式还有自己独有的寄存器,这些寄存器加起来有37个。寄存器的数量较少而且有限,所以尽量不要让太多变量占用寄存器。
register关键字不能修饰全局或者静态变量
一般register修饰的是局部变量,局部变量的生命周期是随作用域的,出了作用域就会被销毁,被销毁的寄存器变量也就不会继续占用寄存器了。
但是全局变量和静态变量的生命周期是随进程的,只要程序一直在运行,就会一直占用寄存器。
1909

被折叠的 条评论
为什么被折叠?



