2015-02-02 6 views
1

while (true) 루프를 사용하고 루프 내에 break가 작성되지 않고 루프 내에 일부 명령문이 있습니까? 나는 루프가 끝없는 루프로 들어갈 것이라는 것을 이해한다. 그러나 내가 정말로 알고 싶은 것은 OS와 SDK의 관점입니다. 그들 중 누구라도 이러한 루프를 처리하거나 시스템이 특정 시간 후에 그냥 충돌합니다. 그리고 그들이 이것을 처리한다면 정확히 어떻게 구현됩니까?While (true) while (true) 루프를 이해하십시오.

+0

전적으로 루프가하는 일에 달려 있습니다. 이 질문은 아주 불분명하다. –

+0

많은 앱/프로세스/스레드가 영원한 루프로 작성됩니다. 프로세스를 종료시키지 않으려면 루프를 돌리거나 (끝내고 새 코드를 실제로 추가하면됩니다.) –

+0

@LightnessRacesinOrbit - 아니, 나는 그것을 얻지 않는다 : ( –

답변

1

루프에있는 내용에 따라 다릅니다. 메모리 나 다른 자원을 할당하는 것은 궁극적으로 자원이 부족합니다. 어떤 일이 일어나는지는 리소스와 코드의 강도에 달려 있습니다. 즉, 요청한 모든 메모리를 할당했다고 가정합니까? 아니면 NULL 체크를합니까?)

리소스를 사용하는 루프가 없으면 아무 것도 없습니다. 사용자 나 OS가 프로세스를 죽이지 않으면 루프가 멈추게됩니다.

// This will eventually crash. 
while(true) { 
    p = malloc(100); 
    *p = 0; 
} 


// this will go on forever. 
while(true) { 
    looping = true; 
} 
+1

실제로 마지막 루프는 UB이며, 완전히 최적화 될 수있다. "영원히 계속 될 것을 기대하지 마라!" –

+0

@LightnessRacesinOrbit 왜 UB인가 – Pradhan

+1

최적화 된 경우에는 동작이 변경되므로 최적화 프로그램이 작동하지 않는다고 주장 할 것입니다. (다시 예제가 있습니다) – John3136

관련 문제