Was passiert wenn sich Unterprogramme immer wieder gegenseitig aufrufen?

Gast #1919189
Lesenswert?

Sepp schrieb:
> was passiert eigentlich wenn zB UP1 das UP2 aufruft, UP2 ruft UP3 auf
> und UP3 zB wieder UP1 und wieder von vorne, ohne das jemals in das
> aufrufende UP zurückgekehrt wird?

Kommt drauf an womit Du programmierst ;-)
Stichwort(e): "proper tail calls"
Gast #1919192
Lesenswert?

Hi
> was passiert eigentlich wenn zB UP1 das UP2 aufruft, UP2 ruft UP3 auf
> und UP3 zB wieder UP1 und wieder von vorne, ohne das jemals in das
> aufrufende UP zurückgekehrt wird?

Da frag ich mich doch ernsthaft, wofür dies gut sein soll. Klar, es gibt 
rekursive Aufrufe, die  bis zu einer vorgegebenen Tiefe arbeiten dürfen, 
aber auch da ist ein RET zwingend.
Normalerweise ist doch eine Programmschleife mit Aufrufen von 
Unterprogrammen genau das, was du willst. Hier wird allerdings jedes 
Unterprogramm wieder mit RET in die Hauptschleife zurückgeführt.
Willst oder mußt du so wie angedacht programmieren, dann schreib in 
jedes Unterprogramm zwei POP auf ein unbenutztes Register...
Gruß oldmax

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren