寄存器变量.doc

上传人:白大夫 文档编号:3432802 上传时间:2019-08-25 格式:DOC 页数:2 大小:12.50KB
返回 下载 相关 举报
寄存器变量.doc_第1页
第1页 / 共2页
亲,该文档总共2页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《寄存器变量.doc》由会员分享,可在线阅读,更多相关《寄存器变量.doc(2页珍藏版)》请在三一文库上搜索。

1、寄存器变量寄存器变量:变量一般情况下都存在于内存中。如果程序需要使用某个变量,CPU的控制器将从内存中取得变量值后会将其暂存在寄存器中。寄存器就是CPU自己的“小内存”,它的特点是“容量小、速度快”。正常情况下,编程语言本身无法直接操作寄存器。但某些时候,一些变量可能会被频繁地使用,这时,频繁地对内存进行存取操作就会耗费较多的时间;如果我们能够有效地利用CPU的寄存器,就会显著提升程序的运行效率。C语言中使用关键字register来声明局部变量为寄存器变量。寄存器变量的值会被存放在CPU的寄存器中,每当需要使用它们时,CPU就可以直接使用,而无须再通过控制器从内存中获取。由于操作寄存器的速度远

2、高于操作内存,所以正确地使用寄存器变量能够有效地提高程序运行效率。register型变量常被用于作为循环控制变量,这能充分体现它的高速特点。但是,我们必须明确只 有局部自动变量和形式参数才能够被定义为寄存器变量,全局变量和局部静态变量都不能被定义为寄存器变量。而且,一个计算机中寄存器数量是有限的,一般为2 到3个,因此寄存器变量的数量不能太多。对于在一个函数中说明的多于2到3个的寄存器变量,编译程序会自动地将寄存器变量变为自动变量。 受硬件寄存器长度的限制,寄存器变量只能是char、int或指针型,而不能使其他复杂数据类型。由于register变量使用的是硬件CPU中的寄存器,寄存器变量无地址

3、,所以不能使用取地址运算符“C语言中的变量按存储区域可以分为三种:堆栈中的自动变量,普通内存中得静态变量,硬件寄存器变量。由于寄存器变量直接存放在CPU中,而不在内存中,所以访问速度极快。一般应用于需要大量次数访问的变量。寄存器变量只能存放int ,char和指针类型的数据,而且寄存器变量不能过多的使用,否则反而会降低运算速度。但是我们将数据类型定义为register int 类型难道真的能提高运算速度吗?实验发现,将数据定义为register int 并没有对时间照成多少影响。原因是register 并不是一个指令,仅仅是对编译器的一个建议,编译器会根据情况将数据放入寄存器中。所以速度可能并不会差太多,因此除非有特殊需要,否则不必将数据定义为register。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1