C 中 main() 的遞迴:合法與否?
關於 C 的一個常見誤解是遞歸到 main() 的合法性) 功能。雖然從直覺上看,這種做法是被禁止的,但編譯器通常並不反對這類程式碼。為了澄清這個問題,讓我們深入研究一下 C 標準的複雜性。
依 C 標準 (3.6.1/3),不允許遞歸到 main() 中。該標準明確規定「不得在程式中使用 main 函數」。在這種情況下,“used”意味著該函數在潛在計算表達式中被引用。
因此,以下程式碼違反了 C 標準:
int main() { main(); }
儘管如此禁止,某些編譯器在遇到此類程式碼時可能不會發出錯誤。這可能會導致開發人員相信遞歸到 main() 是合法的,但重要的是要注意這種行為是錯誤的。對編譯器接受度的依賴不應取代對標準的遵守。
總之,依照 C 標準,遞歸到 main() 是非法的。雖然編譯器可能不會總是強制執行此規則,但開發人員應了解標準的要求並在程式碼中避免這種做法。
以上是在 C 遞歸到 `main()` 合法嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!