컴파일러는 무한 루프를 제거할 수 있습니까? 컴파일러 최적화를 통해 무한 루프를 삭제할 수 있으며, 이것은 어떤 데이터도 바꾸지 않습니다. while(1) /* noop */; 데이터 흐름 그래프 컴파일러를 분석하면 그러한 루프가 아무런 부작용 없이 "죽은 코드"라는 것을 알 수 있습니다. 무한 루프 삭제는 C90/C99 표준에서 금지되어 있습니까? C90이나 C99 표준은 컴파일러가 그러한 루프를 삭제하는 것을 허용합니까? 업데이트: "Microsoft C 버전 6.0은 본질적으로 이러한 최적화를 수행했습니다.". caf의 링크 참조. label: goto label; return 0; 로 변경될 예정입니다. return 0; C11은 C11 표준 초안 섹션에서 이 질문에 대한 답을 명확히 합니다.6...