sytn.net
当前位置:首页 >> rEgistEr变量 >>

rEgistEr变量

是的.在C++中,使用 register 关键词声明的变量与不使用任何存储类型指示符(storage-class-specifier )声明的局部变量在作用上没有区别.C++98/03标准规定,用 register 关键词声明的变量和不使用任何存储类型指示符声明的变量一样,

n==0的时候退出n的初始值作为参数传入的

CPU工作的前提是先要把要操作的数据读出来放到离CPU非常近的一个区域里(高速寄存器),这里对于CPU来说操作方便,速度也最快.但是这个区域很小,一般声明的变量是没有常驻这里的待遇的. register变量就是人为声明的常驻快速寄存器里的变量,这样可以省去对内存的访问时间.要知道内存的速度还是远小于寄存器的.这个对短时间内多次使用的变量的速度很有提高.当然这也只是理论上的.

register要不要的区别?一般情况下没区别.在某些嵌入式程序设计中有些区别,就是把两个变量放在寄存器中.能加快运行速度.

使用 register 定义的变量, 并不一定会真的放在寄存器中, register 对于编译器来说只是个建议, 如果编译器觉得当前状态能够将变量放入寄存器, 它才会生成对应的寄存器代码, 大量的使用 register 不会有太大副作用的, 因为这只是个建议, 实不实施是编译器决定的!

在许多机器的硬件实现中,并不为寄存器指定地址,同样,由于寄存器的值的保存和恢复,某个特定的寄存器在不同的时刻所保存的值不一定相同,基于这些理由,机器并不向你提供寄存器变量的地址.

C语言中变量的声明/定义格式如下:存储类型 类型修饰符 数据类型 变量名;存储类型:用来指明变量的存储位置,即运行该变量在哪一段分配内存空间,常见的存储位置有auto、extern、register、static,在一段执行程序中,可以为变量分配存

比如 for(int i = 0; i != 1000; ++i) ; 此时,i声明成寄存器类型,则++i操作会被优化,否则会先在内存访问i,然后++,最好将++i的值写入i的内存 但是,register只是建议变量保存在内存中,实际怎么实现还是要看变量类型和编译器实现 而且现代编译器一般会自动优化,将频繁使用的变量放到寄存器中

a.对,cpu包含运算器,所有运算都要通过运算器运算,所以register是把数据放到cpu的寄存器,所以比放到内存运算还快 b.对,寄存器8086 有14个16位寄存器,所以数量少 c.对,extern定义变量,告知编译器变量的名称和类型,按变量类型分配 d.错,局部变量的作用域有限,只能限定于某个函数体内,如main()里面的变量,所以用全局变量,那其他函数就可以使用,函数之间的“耦合性”更加紧密,其它模块可以使用变量,这就把模块联系起来,有利于模块化.

register 变量 寄存器变量,是由寄存器分配空间,访问速度比访问内存快,加快执行速度.寄存器大小有限. 在c语言当中可以使用寄存器变量来优化程序的性能,最常见的是在一个函数体当中,将一个常用的变量声明为寄

网站首页 | 网站地图
All rights reserved Powered by www.sytn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com