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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.