C语言中函数变量的存储类型register是什么意思

什么叫存在寄存器中?什么时候要用它?用它有什么好处?看书看了半天没有看懂,请用通俗的语言给俺解释一下,谢了... 什么叫存在寄存器中?什么时候要用它?用它有什么好处?看书看了半天没有看懂,请用通俗的语言给俺解释一下,谢了 展开
 我来答
在波尔多漂流的东北虎
2011-01-05 · TA获得超过1585个赞
知道小有建树答主
回答量:219
采纳率:0%
帮助的人:124万
展开全部
我借用一个网络教程上的一些话,来给你解释一下:
不知道什么是寄存器?那见过太监没有?没有?其实我也没有。没见过不要紧,见过就
麻烦大了。^_^,大家都看过古装戏,那些皇帝们要阅读奏章的时候,大臣总是先将奏章交
给皇帝旁边的小太监,小太监呢再交给皇帝同志处理。这个小太监只是个中转站,并无别
的功能。
好,那我们再联想到我们的 CPU。CPU不就是我们的皇帝同志么?大臣就相当于我们
的内存,数据从他这拿出来。那小太监就是我们的寄存器了(这里先不考虑 CPU的高速缓
存区) 。数据从内存里拿出来先放到寄存器,然后CPU 再从寄存器里读取数据来处理,处理
完后同样把数据通过寄存器存放到内存里,CPU 不直接和内存打交道。这里要说明的一点
是:小太监是主动的从大臣手里接过奏章,然后主动的交给皇帝同志,但寄存器没这么自觉,
它从不主动干什么事。一个皇帝可能有好些小太监,那么一个 CPU也可以有很多寄存器,
不同型号的 CPU拥有寄存器的数量不一样。
为啥要这么麻烦啊?速度!就是因为速度。寄存器其实就是一块一块小的存储空间,只
不过其存取速度要比内存快得多。进水楼台先得月嘛,它离 CPU很近,CPU一伸手就拿到
数据了,比在那么大的一块内存里去寻找某个地址上的数据是不是快多了?那有人问既然
它速度那么快,那我们的内存硬盘都改成寄存器得了呗。我要说的是:你真有钱!
虽然寄存器的速度非常快,但是使用 register修饰符也有些限制的:register变量必须是
能被 CPU寄存器所接受的类型。意味着 register变量必须是一个单个的值,并且其长度应小
于或等于整型的长度。而且 register变量可能不存放在内存中, 所以不能用取址运算符 “&”
来获取 register变量的地址。
不知道你看懂没有,其实这个用的确实不是很多,除非你做单片机的编程!
如果你有兴趣,我可以把这个教程给你!对C语言的理解有一定的帮助!
Aztack
2011-01-05 · TA获得超过607个赞
知道小有建树答主
回答量:450
采纳率:0%
帮助的人:411万
展开全部
一般情况下不会使用到的。这个存储类型的意思是:优先将这个类型的变量存放在寄存器里。如果寄存器不够用就放在内存里。寄存器的速度比内存快很多。不过对于一般应用程序来说基本不需要。只有对速度要求很高的库才会用到。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heyihan1988
2011-01-05 · TA获得超过245个赞
知道小有建树答主
回答量:213
采纳率:100%
帮助的人:176万
展开全部
比如

for(int i = 0; i != 1000; ++i)
;
此时,i声明成寄存器类型,则++i操作会被优化,否则会先在内存访问i,然后++,最好将++i的值写入i的内存

但是,register只是建议变量保存在内存中,实际怎么实现还是要看变量类型和编译器实现
而且现代编译器一般会自动优化,将频繁使用的变量放到寄存器中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
du瓶邪
2015-08-08 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2758万
展开全部
C语言中变量的声明/定义格式如下:
存储类型 类型修饰符 数据类型 变量名;
存储类型:用来指明变量的存储位置,即运行该变量在哪一段分配内存空间,常见的存储位置有auto、extern、register、static,在一段执行程序中,可以为变量分配存储空间的有BSS、数据区、栈区、堆区。
类型修饰符:用来修饰变量的存储和表现方式。包括long、short、signed、unsigned、void、const、volatile等。
数据类型:用来指明该变量的存储大小,即一个该类型的变量要占用多少内存空间。基本数据类型有(char、int、float、指针类型)和由基本数据类型组成的用户自定义类型(struct、enum、typedef、union)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式