Oproepstapel

Schrijver: Lewis Jackson
Datum Van Creatie: 8 Kunnen 2021
Updatedatum: 25 Juni- 2024
Anonim
The Call Stack
Video: The Call Stack

Inhoud

Definitie - Wat betekent Call Stack?

Een call-stack, in C #, is de lijst met namen van methoden die tijdens de uitvoering worden aangeroepen vanaf het begin van een programma tot de uitvoering van de huidige instructie.


Een call-stack is vooral bedoeld om bij te houden tot welk punt elke actieve subroutine de controle moet teruggeven wanneer deze klaar is met uitvoeren. Oproepstack fungeert als een hulpmiddel om een ​​toepassing te debuggen wanneer de te traceren methode in meer dan één con kan worden aangeroepen. Dit vormt een beter alternatief dan het toevoegen van traceercode aan alle methoden die de opgegeven methode aanroepen. Wanneer een uitzondering ergens in de gebruikerscode wordt gegooid, zal de Common Language Runtime (CLR) de call-stack afrollen en zoeken naar het catch-blok om het specifieke uitzonderingstype te bepalen. Als er geen geschikte handler is, beëindigt CLR de toepassing. Oproepstapel wordt daarom gebruikt om de uitvoeringswijzer te vertellen waar de volgende stap naartoe moet.

Een inleiding tot Microsoft Azure en de Microsoft Cloud | In deze handleiding leert u wat cloud computing inhoudt en hoe Microsoft Azure u kan helpen bij het migreren en runnen van uw bedrijf vanuit de cloud.

Techopedia legt Call Stack uit

Oproepstapel is georganiseerd als "stapel", een datastructuur in het geheugen voor het opslaan van items op een last-in-first-out manier, zodat de beller van de subroutine het retouradres op de stapel en de opgeroepen subroutine duwt, na afwerking, haalt het retouradres uit de oproepstapel om de besturing naar dat adres over te dragen.


In C # begint elke toepassing met een "hoofdmethode", die op zijn beurt andere methoden aanroept. Bij elke aanroep van een methode wordt de methode toegevoegd aan de bovenkant van de stapel en wordt deze verwijderd uit de stapel bij terugkeer naar de beller. Ook wordt de reikwijdte van een in een blok gedeclareerde variabele bepaald vanaf het moment dat de waarde ervan op de stapel wordt gepusht (als onderdeel van de call-stack) tot de uitvoering het blok verlaat wanneer de variabele en de call-stack van de stapel worden verwijderd. De stapel behoudt dus zowel lokale variabelen (waardetypes) als de aanroepstapel (stapelframes), waarvan de grootte de complexiteit van een programma aangeeft.

Deze definitie is geschreven in de con van C #