首頁  >  文章  >  後端開發  >  C 中合法允許遞歸到 Main() 嗎?

C 中合法允許遞歸到 Main() 嗎?

DDD
DDD原創
2024-11-12 16:41:02895瀏覽

Is Recursion into Main() Legally Allowed in C  ?

探索C 語言中遞歸到Main() 的合法性

程式設計師之間經常爭論的是遞歸到C 語言中main () 的合法性。 C.雖然一些消息來源表明這是禁止的,但其他消息來源則證明了編譯器接受此類程式碼的看似矛盾的行為。

C 標準的視角

依據 3.6 的 C 標準。 1/3,明確禁止遞歸到 main():「函數 main 不得在程式中使用。」

在標準上下文中理解「使用」

標準將「used」定義為:「如果物件或非重載函數的名稱出現在潛在評估的表達式中,則使用該物件或非重載函數。」

在所提供的範例程式碼的情況下:

對main() 的呼叫出現在main() 的主體中,這是一個潛在評估的表達式。因此,根據標準的定義,main() 在程式中使用,使其非法。

編譯器行為和潛在異常

儘管標準禁止,編譯器還是喜歡g 可以編譯這樣的程式碼而不會出錯。通常不建議也不應依賴此行為。編譯器可能會以非標準或特定於實現的方式處理此類情況。

避免遞歸 Main()

確保符合 C 標準並避免潛在問題,強烈建議避免遞歸到 main() 中。相反,請考慮使用替代設計模式或程式技術來實現所需的功能,而不違反語言的規則。

以上是C 中合法允許遞歸到 Main() 嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn