register 关键字是一个存储类修饰符,用于 提示 编译器将其存放在寄存器中(并不是强制性的),而不是在内存中,这样可以提高访问的速度

用途

  • 优化性能:将变量存储在寄存器中,访问速度较内存中的变量快,因此对频繁使用的变量可能有性能上的提升

注意事项

  • register 关键字仅仅适用于局部变量,不适用于全局变量和静态变量

    • 这是因为,全局变量和静态变量的生命周期是贯穿程序的,也就是说他们有固定的地址,局部变量是存储在栈上,生命周期与所在的函数一致,会随着栈帧的消亡而消亡,可以看成是临时性的

    • 寄存器存储的数据是临时性的,一段时间后可能会被其他数据覆写,所以不能用于存储全局变量和局部变量

  • 不能对寄存器变量取址

    • 这是因为,寄存器是CPU的内部构件,由CPU管控,不像内存那样有为每个存储单元分配一个空间,所以不能取址

    • 并且,寄存器存储的是临时的数据,也就是说他的数据会不断变化,如果能够取值,取的也不是我们预想的变量的值了

 posted on 2025-04-15 13:01  Dylaris  阅读(42)  评论(0)    收藏  举报