2013-06-27 3 views
10

C에서 main()이 재진입 적이라고 들었지만 C++에서는 그렇지 않습니다.main() 함수가 재진입입니까?

사실인가요? main() 함수를 다시 입력하는 시나리오는 무엇입니까?

+7

나는 [재진입]이라고 생각하지 않는다. (http://en.wikipedia.org/wiki/Reentrancy_ (computing)). 그러나 C에서'main'을 호출 할 수 있고 C++로 호출 할 수 없다는 것은 사실입니다. –

답변

16

C 로의 변환을 기반으로 한 초기 C++ 구현은 main의 시작 부분에 함수 호출을 추가하여 전역 생성자를 구현했습니다. 그러한 구현에서 main을 다시 호출하면 전역 관리자가 다시 실행되어 혼란을 빚을 수 있으므로 단순히 그렇게하는 것이 금지되었습니다.

C는 main을 호출하는 것을 금지 할 이유가 없었으며, 항상 전통적으로 가능했습니다.

유용한 정보는 "드물게"라고 말합니다. main이라고 불리는 대부분의 프로그램은 IOCCC 항목이었습니다.