关于 关键字register的疑问

chenkh 2009-06-09 02:03:28
为什么下面一个程序
#include "iostream.h"
#include "time.h"
void main()
{

clock_t Start,Finish;
Start = clock();
register int i;
int j=0;
for(i=0;i<100000;i++)
printf("%d",++i);
Finish = clock();
cout<<"用时:"<<double(Finish-Start)/CLOCKS_PER_SEC;//CLOCKS_PER_SEC是一个宏,登记了你的CPU一秒钟的时钟振荡次数。
}

变量i加上关键字register反而比不加慢?不是说是寄存器变量,速度应该更快才对啊?
编译环境VC 6.

另外的疑问是现在register还有用吗?
...全文
28 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenkh 2009-06-09
  • 打赏
  • 举报
回复
谢谢楼上各位,结贴
chenkh 2009-06-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lockhall 的回复:]
该说的楼上都说了。

楼主看看汇编代码呢?
[/Quote]

惭愧,汇编刚起步。
lockhall 2009-06-09
  • 打赏
  • 举报
回复
该说的楼上都说了。

楼主看看汇编代码呢?
nosxcy 2009-06-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pengzhixi 的回复:]
这个关键词只是说建议编译器将这个变量存放到寄存器里面处理。但是并不是强制的。
[/Quote]
只是建议,最终放在寄存器or内存,由编译器决定.
pengzhixi 2009-06-09
  • 打赏
  • 举报
回复
另外把编译器的优化开着
tian428 2009-06-09
  • 打赏
  • 举报
回复
慢多少?
pengzhixi 2009-06-09
  • 打赏
  • 举报
回复
这个关键词只是说建议编译器将这个变量存放到寄存器里面处理。但是并不是强制的。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧