静态变量、自动变量与寄存器变量的存储.docx
《静态变量、自动变量与寄存器变量的存储.docx》由会员分享,可在线阅读,更多相关《静态变量、自动变量与寄存器变量的存储.docx(3页珍藏版)》请在第一文库网上搜索。
1、静态变量、自动变量与寄存器变量的存储什么是寄存器?什么是寄存器变量?寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)O在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(C)。寄存器是内存阶层中的最顶端,也是系统获得操作资赳的最快速途径。寄存器通常都是以他们可以保存的位元数量来估量,举例来说,一个“8位元寄存器”或“32位元寄存器”。寄存器现在都以寄存器档案的方式来实作,但是他们也可能使用单独的正反器、高速的核心内存、薄膜内存以及在数种机器上的其他方式来实作出来。
2、寄存器通常都用来意指由一个指令之输出或输入可以直接索引到的暂存器群组。更适当的是称他们为“架构寄存器。寄存器是些内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。register寄存器变量告诉编译器相关的变量应该改量存储在高速度的寄存器中。使用register存储类型的目的一般是为了提高执行速度,但是,register声明只是向编译器所提出的“建议”,并非强制要求。寄存器型变量register限定词通知编译器一程序中的变量将频繁使用。它的意思是建议编译器将程序中用register限定的变量放置在计算机的内部寄存其中,这样可能得到更小更快的程序。但是,编译器将根据实际情况
3、考虑是否采纳该建议一是否将register变量处理为寄存器变量最终决定权还是在编译器。如下使用register:registerintx;*X必须是内部变量*/registercharch;/*Ch必须是内部变量*/register只能用于限定自动型变量和函数的形式参数。也就是说register只对内部变量起作用,而且只能限定内部非静态型变量,不能限定内部静态型变量。register也可以应用于形式参数,格式如下:f(registerunsignedIIbregister1ongn)/register应用于形式参数*/registerinti;*register应用于内部变量*/在传统C中,r
4、egiste变量的使用有诸多限制,它决定于硬性的实现方式。在每一个函数中只有少数几个变量可以保存在寄存器中,而且也只有特定的类型才行。过量的register变量看起来是无害的,但是超量以后,编译器将忽略新的register变量。另外不管register变量实际上是否被编译器设置为寄存器型变量,都不可能取得该变量的地址。寄存器型变量的类型和数量的多少随计算机不同而异。register变量一般只能够设置几个。传统C的register类型限定于Char、int等类型。像f1oat、doub1e、数组等是不可以设定为register型变量的。但是,在最新C99标准中,任何类型都可以定义为registe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 静态 变量 自动 寄存器 存储