欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C/C++中的寄存器变量

程序员文章站 2024-02-01 21:30:22
...

变量通常储存在计算机内存中。如果幸运的话,寄存器变量储存在CPU 的寄存器中,或者概括地说,储存在最快的可用内存中。与普通变量相比, 访问和处理这些变量的速度更快。由于寄存器变量储存在寄存器而非内存中,所以无法获取寄存器变量的地址。绝大多数方面,寄存器变量和自动变量都一样。
也就是说,它们都是块作用域、无链接和自动存储期。
使用存储 类别说明符register便可声明寄存器变量:

int main(void)
{
register int quick;

我们刚才说“如果幸运的话”,是因为声明变量为register类别与直接命令 相比更像是一种请求。编译器必须根据寄存器或最快可用内存的数量衡量你 的请求,或者直接忽略你的请求,所以可能不会如你所愿。
在这种情况下, 寄存器变量就变成普通的自动变量。即使是这样,仍然不能对该变量使用地址运算符。
在函数头中使用关键字register,便可请求形参是寄存器变量:

void macho(register int n)

可声明为register的数据类型有限。例如,处理器中的寄存器可能没有足够大的空间来储存double类型的值。

相关标签: 计算机学习