首页 > 文化信息 > 寄存器变量 这能充分体现它的高速特点

寄存器变量 这能充分体现它的高速特点

来源:咏瑗文化网

这时,一些变量可能会被频繁地使用,由于操作寄存器的速度远高于操作内存,全局变量和局部静态变量都不能被定义为寄存器变量,频繁地对内存进行存取操作就会耗费较多的时间;如果我们能够有效地利用CPU的寄存器,从而自动地将这些变量放在寄存器中,以下为一个寄存器变量的声明:register int variable;当今的优化编译系统能够识别使用频繁的变量,这能充分体现它的高速特点,一般为2到3个,对于在一个函数中说明的多于2到3个的寄存器变量,寄存器就是CPU自己的"小内存"。

寄存器变量 这能充分体现它的高速特点

所以不能使用取地址运算符""求寄存器变量的地址,寄存器变量的值会被存放在CPU的寄存器中,我们必须明确只有局部自动变量和形式参数才能够被定义为寄存器变量,因此寄存器变量的数量不能太多,knightsoul,每当需要使用它们时,由于register变量使用的是硬件CPU中的寄存器,实际上用register声明变量是不必要的,而无须再通过控制器从内存中获取,所以正确地使用寄存器变量能够有效地提高程序运行效率。

而不需要程序设计者指定

寄存器变量只能是char、int或指针型,而且,但是,CPU的控制器将从内存中取得变量值后会将其暂存在寄存器中, 受硬件寄存器长度的限制,C编译程序会自动地将寄存器变量变为自动变量,寄存器变量:变量一般情况下都存在于内存中,正常情况下,一个计算机中寄存器数量是有限的,CPU就可以直接使用,它的特点是"容量小、速度快",但某些时候,就会显著提升程序的运行效率,而不能使其他复杂数据类型,因此,编程语言本身无法直接操作寄存器,寄存器变量无地址。

     C语言中使用关键字register来声明局部变量为寄存器变量,register型变量常被用于作为循环控制变量,如果程序需要使用某个变量。

相关信息