register 关键字是一个存储类修饰符,用于 提示 编译器将其存放在寄存器中(并不是强制性的),而不是在内存中,这样可以提高访问的速度
用途
- 优化性能:将变量存储在寄存器中,访问速度较内存中的变量快,因此对频繁使用的变量可能有性能上的提升
注意事项
-
register 关键字仅仅适用于局部变量,不适用于全局变量和静态变量
-
这是因为,全局变量和静态变量的生命周期是贯穿程序的,也就是说他们有固定的地址,局部变量是存储在栈上,生命周期与所在的函数一致,会随着栈帧的消亡而消亡,可以看成是临时性的
-
寄存器存储的数据是临时性的,一段时间后可能会被其他数据覆写,所以不能用于存储全局变量和局部变量
-
-
不能对寄存器变量取址
-
这是因为,寄存器是CPU的内部构件,由CPU管控,不像内存那样有为每个存储单元分配一个空间,所以不能取址
-
并且,寄存器存储的是临时的数据,也就是说他的数据会不断变化,如果能够取值,取的也不是我们预想的变量的值了
-
posted on
浙公网安备 33010602011771号