C 是否像 Python 一樣有遞迴深度限制?
與 Python 不同,Python 由於其解釋性而具有最大遞歸深度,C 是編譯的,並且沒有直接面對這樣的限制。然而,C 確實有作業系統透過其分配的堆疊大小施加的遞歸限制。
C 中的堆疊大小通常明顯小於可用 RAM,並且可以在作業系統內進行修改(例如使用Unix 系統上的 ulimit)。在 macOS 上,預設堆疊限制為 8 MB。
要計算最大遞歸深度,需要確定遞歸函數的啟動記錄大小。這可以使用調試器的反彙編器來確定堆疊指標調整來完成。與計算函數呼叫中指標之間的差異等其他方法相比,這可以提供更準確的估計值。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3