首頁 > 後端開發 > C++ > 主體

在 C 遞歸到 `main()` 合法嗎?

DDD
發布: 2024-11-18 20:13:02
原創
534 人瀏覽過

Is Recursion into `main()` Legal in C  ?

C 中 main() 的遞迴:合法與否?

關於 C 的一個常見誤解是遞歸到 main() 的合法性) 功能。雖然從直覺上看,這種做法是被禁止的,但編譯器通常並不反對這類程式碼。為了澄清這個問題,讓我們深入研究一下 C 標準的複雜性。

依 C 標準 (3.6.1/3),不允許遞歸到 main() 中。該標準明確規定「不得在程式中使用 main 函數」。在這種情況下,“used”意味著該函數在潛在計算表達式中被引用。

因此,以下程式碼違反了 C 標準:

int main()
{
    main();
}
登入後複製

儘管如此禁止,某些編譯器在遇到此類程式碼時可能不會發出錯誤。這可能會導致開發人員相信遞歸到 main() 是合法的,但重要的是要注意這種行為是錯誤的。對編譯器接受度的依賴不應取代對標準的遵守。

總之,依照 C 標準,遞歸到 main() 是非法的。雖然編譯器可能不會總是強制執行此規則,但開發人員應了解標準的要求並在程式碼中避免這種做法。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板