>백엔드 개발 >C++ >C에서 main() 함수로의 재귀가 허용됩니까?

C에서 main() 함수로의 재귀가 허용됩니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-16 09:09:02229검색

Is Recursion into main() Function Allowed in C  ?

C에서 Main()으로의 재귀: 적법성 및 표준 고려 사항

C 프로그래밍 영역에서 Main()으로의 재귀 동작 () 함수는 논쟁을 불러일으켰습니다. 일부 소스에서는 이것이 금지되어 있다고 제안하지만 컴파일러 g는 오류를 발생시키지 않고 이러한 재귀를 허용하는 것으로 보입니다. 이 글의 목적은 C 표준을 자세히 살펴보고 이 관행의 합법성을 밝히는 것입니다.

기본적으로 Main()에 대한 재귀 금지

C 표준에 따름 섹션 3.6.1/3에서는 main()으로의 재귀가 명시적으로 금지되어 있습니다. 이 조항에는 "main 함수는 프로그램 내에서 사용할 수 없습니다."라고 명시되어 있습니다.

표준에서 "사용됨"의 정의

표준의 맥락에서, "사용됨"은 잠재적으로 평가된 표현식에 이름이 나타나는 개체 또는 오버로드되지 않은 함수를 나타냅니다. main()은 모든 C 프로그램의 진입점이므로 표현식이나 문 내에서 호출하면 사용법이 구성됩니다.

Main()으로의 재귀에 대한 G의 동작

표준의 금지에도 불구하고 g는 main()으로 반복되는 코드의 컴파일을 허용합니다. 이 동작은 표준에 대한 컴파일러의 구현별 및 비준수 해석으로 인해 발생할 수 있습니다.

의미 및 결과

main()을 재귀적으로 호출하면 예측할 수 없는 결과가 발생할 수 있습니다. C에서. 컴파일러는 오류로 인해 프로그램을 종료하거나 스택 오버플로 또는 무한 재귀와 같은 정의되지 않은 동작으로 이어질 수 있습니다.

권장 사례

C 표준을 따르고 잠재적인 문제를 피하려면 main() 함수로의 반복을 삼가하는 것이 좋습니다. 대신, 원하는 기능을 달성하기 위해 도우미 함수와 함께 루프 또는 재귀와 같은 기술을 사용하는 것을 고려해보세요.

위 내용은 C에서 main() 함수로의 재귀가 허용됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.