C에서 Main()으로의 재귀 적법성 탐색
프로그래머들 사이에서 반복되는 논쟁은 C에서 main()으로의 재귀 적법성입니다. 씨. 일부 소스에서는 금지된 것으로 제안하지만 다른 소스에서는 이러한 코드를 허용하는 컴파일러의 모순된 동작을 보여줍니다.
C 표준의 관점
3.6의 C 표준에 따르면. 1/3, main()으로의 재귀는 명시적으로 금지됩니다. "main 함수는 프로그램."
표준 맥락에서 "사용됨" 이해
표준에서는 "사용됨"을 다음과 같이 정의합니다. 잠재적으로 평가되는 표현식에 그 이름이 나타납니다."
예제 코드의 경우 제시:
int main() { main(); }
main()에 대한 호출은 잠재적으로 평가되는 표현식인 main()의 본문 내에 나타납니다. 따라서 표준 정의에 따르면 main()이 프로그램 내에서 사용되어 불법으로 간주됩니다.
컴파일러 동작 및 잠재적 예외
표준의 금지에도 불구하고 컴파일러는 다음과 같습니다. g는 이러한 코드를 오류 없이 컴파일할 수 있습니다. 이 동작은 일반적으로 권장되지 않으며 의존해서는 안 됩니다. 컴파일러는 이러한 상황을 비표준 또는 구현별 방식으로 처리할 수 있습니다.
Main()으로의 재귀 방지
C 표준 준수를 보장하고 잠재적인 문제를 방지하려면 , main()으로의 재귀를 피하는 것이 좋습니다. 대신, 언어 규칙을 위반하지 않고 원하는 기능을 달성하기 위해 대체 디자인 패턴이나 프로그래밍 기술을 사용하는 것을 고려해보세요.
위 내용은 C에서 Main()으로의 재귀가 법적으로 허용됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!