본문으로 바로가기

[C언어] 무한 루프 (infinite loop)

category C 2014. 5. 3. 23:32

앞서 우리는 while 문의 변형형태에 대해 공부하였다.

while(1)

{

    if (조건문)

        break;

}

 

 

조건문을 만족하지 못하면 계속 무한실행을 하고 있는 것이다.

저 조건문이 윈도우의 x 버튼(close) 이라면

윈도우는 x 버튼을 누르기 전까지 계속 실행중인 상태가 되는 것이다.

위와 같은 형태는 굉장히 많이 쓰이는 구조이다.

for 문으로 바꾸어 쓰면 다음과 같다.

 

for (;;)

{

    if (조건문)

        break;

}

 

 

<생각해보기>

무한루프를 만들때 while(1)이 좋을까? for (;;) 이 좋을까?

 

 

void main()
{
 int a=0;
 for(;;)
  a=1;
 while(1)
  a=2;
}

 

 

 int a=0;
00411A1E  mov         dword ptr [a],0
 for(;;)
  a=1;

00411A25  mov         dword ptr [a],1
00411A2C  jmp         main+25h (411A25h)
 while(1)
00411A2E  mov         eax,1
00411A33  test        eax,eax
00411A35  je          main+40h (411A40h)
  a=2;
00411A37  mov         dword ptr [a],2
00411A3E  jmp         main+2Eh (411A2Eh)
}

최적화가 된다면?