关于寄存器变量下面说法说法正确的是

只有局部自动变量和形式参数可以作为寄存器变量,其他(如全局变量)不行

A 寄存器变量可以声明全局变量

 

B无法取寄存器变量的地址

D.寄存器变量访问效率要比普通变量访问效率高

E.声明寄存器变量时有可能不成功

解析:

由于register变量使用的是硬件CPU中的寄存器,寄存器变量无地址,所以不能使用取地址运算符"&"求寄存器变量的地址。

直接存储在寄存器上面的。

寄存器是与机器硬件密切相关的,不同类型的计算机,寄存器的数目是不一样的,通常能够被声明为寄存器变量的寄存器为3到4个,对于在一个函数中说明的多于3到4个的寄存器变量,寄存器变量就声明失败,自动转换为普通变量。

 

register变量

如果有一些变量使用频繁,则为存取变量的值少花些时间,可以将该局部变量的值放在CPU的寄存器中,需要时直接从寄存器取出参加运算,不必去内存中去存取。由于寄存器的存取速度远远高于内存的存取速度,因此这样做可以提高执行效率。这种变量叫做“寄存器变量”,用register作声明。

说明:

(1)只有局部自动变量和形式参数可以作为寄存器变量,其他(如全局变量)不行。

(2)一个计算机系统中的寄存器数目是有限的,不能定义任意多个寄存器变量。

(3)局部静态变量不能定义为寄存器变量。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章