C a-t-il une limite de profondeur de récursion comme Python ?
Contrairement à Python qui a une profondeur de récursion maximale en raison de sa nature interprétée, C est compilé et ne le fait pas directement confrontés à de telles restrictions. Cependant, C a sa propre limite de récursion imposée par le système d'exploitation via la taille de pile qu'il alloue.
La taille de la pile en C est généralement nettement inférieure à la RAM disponible et peut être modifiée dans le système d'exploitation (comme en utilisant ulimit sur les systèmes Unix). Sur macOS, la limite de pile par défaut est de 8 Mo.
Pour calculer la profondeur de récursion maximale, il est nécessaire de déterminer la taille de l'enregistrement d'activation de la fonction récursive. Cela peut être fait à l'aide du désassembleur d'un débogueur pour déterminer les ajustements du pointeur de pile. Cela donne une estimation plus précise par rapport à d'autres méthodes comme le calcul de la différence entre les pointeurs dans les appels de fonction.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!