C 的main() 函數中的遞歸限制
在C 中,main() 函數中遞歸的使用一直是辯論的主題。許多開發人員觀察到,GNU 編譯器集合 (g ) 允許 main() 中的遞歸,儘管 C 標準據稱禁止這樣做。
標準限制
根據C 標準(3.6.1/3),main() 中的遞歸是明確的禁止:
「程序中不得使用main 函數(3.2)。 >「如果其物件或非重載函數被使用,則使用該物件或非重載函數name出現在潛在評估的表達式中。
編譯器行為
儘管標準禁止,g 編譯以下程式碼時沒有錯誤:
出現此差異是因為g 的預設最佳化等級包括小於預先配置閾值的內聯函數。由於此程式碼中的遞歸是單一函數調用,因此它可能會低於閾值並由 g 內聯。結論
雖然 g 可能允許 main 中的遞歸() 在某些情況下,C 標準嚴格禁止這樣做。開發者應遵守標準的要求,以確保程序的正確性和潛在的陷阱。以上是C 的 `main()` 函數可以遞迴嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!