| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 500 人关注过本帖
标题:register在什么情况下用呀
只看楼主 加入收藏
meteors
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2009-7-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
register在什么情况下用呀
#include<stdio.h>
void main()
{
int i,tmp=0;
for(i=1;i<=100;i++)
tmp+=i;
printf("The sum is %d\n",tmp);
}
和下面的
void main()
{
register int i;
int tmp=0;
for(i=1;i<=100;i++)
tmp+=i;
printf("The sum is %d\n",tmp);
}
有什么区别啊 ‘
还有就是register在什么情况下用呀
搜索更多相关主题的帖子: register 
2009-08-27 20:54
qingchen191
Rank: 2
等 级:论坛游民
帖 子:15
专家分:11
注 册:2009-8-4
收藏
得分:0 
register称为寄存器变量。它只能用于整型和字符型变量。
定义符register说明的变量被Turbo C2.0存储在CPU的寄存器中, 而不是象普通的变量那样存储在内存中, 这样可以提高运算速度。
但是Turbo C2.0只允许同时定义两个寄存器变量,一旦超过两个, 编译程序会自动地将超过限制数目的寄存器变量当作非寄存器变量来处理。
因此, 寄存器变量常用在同一变量名频繁出现的地方
另外, 寄存器变量只适用于局部变量和函数的形式参数, 它属于auto型变量,
因此, 不能用作全程变量。

不好意思,直接从书上抄来的,感觉说的很清楚了。
2009-08-27 21:04
luoweijun
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:138
注 册:2009-6-12
收藏
得分:20 
前边程序中的i是默认的自动变量(auto),自动变量在程序调用的时候是分配临时的存储空间,调用的时候也是从内存中调用的,这也是和register最大的不同,register变量的值是存放在CPU中的寄存器中,调用时直接从寄存器中取出参加运算,存放在寄存器中的变量值调用需要的时间短,节省内从,如上面的简单程序用auto变量和register变量时没有多大区别的,在大型程序中这种节约才能体现的出来。
register 说明:

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

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

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

2009-08-27 21:15
西园竹
Rank: 5Rank: 5
等 级:职业侠客
帖 子:41
专家分:305
注 册:2009-8-8
收藏
得分:0 
现在的编译器,基本不理睬这个关键字
2009-08-27 21:24
liangonejzh
Rank: 2
等 级:论坛游民
帖 子:20
专家分:18
注 册:2009-7-30
收藏
得分:0 
哦~~
2009-08-27 22:16
快速回复:register在什么情况下用呀
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026819 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved