c进阶篇(七)——register用法详解
c进阶篇(七)——register用法详解
前言:
register是c的关键字,但目前已经鲜少人使用它了。
1 register介绍
&emps; register 被用于修饰函数局部变量和形参,因此register变量属于动态存储。通常的变量被存储在RAM中,访问RAM中的变量需要CPU对内存寻址访问,而register变量被存储在CPU内部的寄存器中提高了变量的访问速度,但CPU的寄存器数量是有限的(定义太多将会超出容量),因此应尽量减少register的使用。因为具有更高的访问效率及资源的稀缺性,应当优先将频繁读写的变量定义为register变量,比如c循环中频繁访问的变量,如用于循环计数的变量。register只是一个”建议“性的关键字,被register修饰的变量并不一定会被编译器存储在CPU内部寄存器中,只是对编译器优化的一个”建议“,最终如何存储取决于编译器。当今编译器的功能已经十分强大,它能够自动帮你完成这些优化,因此现在很少有人使用register关键字了。被register修饰的变量不能被 &
运算符寻址,由于其可能并不存储在内存中,因此对其寻址将会触发编译器报错。
2 修饰变量
以下是对 register
关键字使用的具体距离。
1 | //register byte g_byVal = 0u; //错误,不能作全局变量。 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 OnlyCalm's Blog!
评论
ValineGitalk