Adakah C Mengehadkan Kedalaman Rekursi?
Tidak seperti Python, yang ditafsirkan dan mempunyai kedalaman rekursi maksimum, C ialah bahasa yang disusun. Oleh itu, kedalaman rekursinya dihadkan terutamanya oleh saiz maksimum tindanan, yang biasanya jauh lebih kecil daripada RAM yang tersedia.
Had tindanan selalunya boleh dilaraskan pada tahap sistem pengendalian. Sebagai contoh, pada macOS, saiz tindanan lalai ialah 8 MB, dan had ini boleh ditala menggunakan perintah cangkerang ulimit.
Walau bagaimanapun, saiz tindanan sahaja tidak menentukan sepenuhnya kedalaman ulangan maksimum. Saiz rekod pengaktifan fungsi rekursif (juga dikenali sebagai bingkai tindanan) juga mesti dipertimbangkan. Saiz ini boleh ditentukan menggunakan pembongkar debugger, yang memaparkan pelarasan penuding tindanan pada permulaan dan penghujung setiap fungsi.
Dengan memahami saiz tindanan dan saiz rekod pengaktifan, adalah mungkin untuk menganggarkan kedalaman maksimum bagi rekursi boleh dicapai dalam program C tertentu sebelum pengecualian limpahan tindanan ditemui.
Atas ialah kandungan terperinci Sejauh manakah Rekursi Boleh Masuk dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!