Come posso trovare la profondità corrente all'interno di una funzione ricorsiva in C++ senza passare al livello precedente? cioè è possibile sapere quante volte è stata chiamata la funzione senza utilizzare un parametro per tenere traccia del livello e passare quel numero come parametro ogni volta che viene chiamata la funzione?Come posso trovare la profondità di una funzione ricorsiva in C++
Per esempio il mio funzione ricorsiva assomiglia a questo:
DoSomething(int level)
{
print level;
if (level > 10)
return;
DoSomething(++level);
}
main
{
DoSomething(0);
}
si consiglia di dare un'occhiata a [questa discussione] (http://stackoverflow.com/questions/582673/is-there-a-cheaper-way-to-find-the-depth-of-the- call-stack-che-usando-backtrace). La linea di fondo è che potrebbe esistere un modo specifico per compilatore/piattaforma per ottenere il backtrace e usarlo ... ma è ovviamente molto compilatore/piattaforma specifico e probabilmente suscettibile di cose come l'inlining. In ogni caso, potrebbe valere la pena dare un'occhiata. –