앞서 우리는 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)
}
최적화가 된다면?