The C Programming Language(第 2 版) 笔记 / 4 函数与程序结构 / 4.7 寄存器变量

目录、参考文献


4.7 寄存器变量

register 声明告诉编译器,它所声明的变量在程序中使用频率较高
其思想是,将 register 变量放在机器的寄存器中,这样可以使程序更小、执行速度更快
但编译器可以忽略此选项

register 声明的形式如下所示:

register int x;
register char c;

register 声明只适用于自动变量以及函数的形式参数:

f(register unsigned m, register long n)
{ 
    register int i; 
    ... 
}

实际使用时,底层硬件环境的实际情况对寄存器变量的使用会有一些限制
每个函数中只有很少的变量可以保存在寄存器中,且只允许某些类型的变量
但是,过量的寄存器声明并没有什么害处,这是因为编译器可以忽略过量的或不支持的寄存器变量声明
另外,无论寄存器变量实际上是不是存放在寄存器中,它的地址都是不能访问的(有关这一点更详细的信息,我们将在第 5 章中讨论)
在不同的机器中,对寄存器变量的数目和类型的具体限制也是不同的


目录、参考文献

你可能感兴趣的:(The,C,Programming,Language,c语言)