24 12
发新话题
打印

[已解决] 死循环?

死循环?

void run(long ti)
{
  for(;;)
  {
   long t = time(NULL);
  wait();  //{long t=time(0);while(t==time(0));}
   
  cout << "\r" << (ti - t)/24/60/60 << "天";
  cout << setw(2) << (ti - t)%(24*60*60)/60/60 << "时";
  cout << setw(2) << (ti - t)%(24*60*60)%(60*60)/60 << "分";
  cout << setw(2) << (ti - t)%(24*60*60)%60 << "秒";
  cout << flush;
  }
}
请问这其中的for循环语句怎么没有循环结束的条件?那不是变成死循环了吗?
这个函数调试时是没问题的.

[ 本帖最后由 hwl1 于 2008-8-18 10:55 编辑 ]

TOP

什么平台上的什么程序?
完整的代码发出来

TOP

wait();

TOP

for(;;){},标准的死循环。
没有break也没有goto,不是死循环莫非是活循环?
斜阳里 大树下 寂寞行人

TOP

其实在某种意义上讲,所有的windows程序都是一个死循环,貌似叫什么消息驱动来着.....

在这个程序里它那个wait()函数很可能起了一个延时的作用,运行这个程序后每隔多少秒就输出一次系统时间

ps:楼主从哪里弄来的代码啊?

TOP

@逍遥:事件驱动机制和消息循环
for的确是死循环,但是关键在于wait,可以在wait里面添加退出的代码
其实,任何一个GUI窗体都是死循环在运行~

TOP

那个wait是哪里的函数
linux里见过,但mingw找不到

TOP

Windows CE上有这个函数~
不过不是普通的Win API

TOP

回复 6楼 的帖子

wait函数为
void wait()
{
long t=time(0);
while(t==time(0));
}
请问什么时候结束循环?
如果在wait里面增加退出代码,那不是不能输出下面的数据了?

TOP

回复 9楼 的帖子

居然这样写延迟……

TOP

一直运行

TOP

那就是死循环了

TOP

1、消息循环不是死循环啊
2、死循环也没有什么大不了的

TOP

回复 13楼 的帖子

但运行结果是正确的啊,没有出现死循环?

TOP

谁告诉你死循环结果就会出错?
那所有Windows程序干脆都不要运行算了~
只不过那个wait函数具有延迟作用~

TOP

 24 12
发新话题