for(;;)                         
{
   if(someStaeMent)
     break;
}while(1)
{
  if(someStaeMent)
     break;
  Sleep(1);
 }
请问以上两段代码的区别是什么?以及在不同windows操作系统的表现

解决方案 »

  1.   

    显然第二个循环比第一个开销大,要多做一个判断:
        mov  eax, ...
        mov  ebx, ...
        cmp  eax, ebx
        jmp  ......
        call ......
      

  2.   

    while(1)也有可能会被优化掉,
    没有什么值得注意的差别吧
      

  3.   


    while里调用了一个sleep,for里没调用.所以while的响应时间要长一些.
      

  4.   

    是啊!到汇编里一看就都知道了!
    for(;;)的速度要快于while(1)