Hjem Udvikling Hvad er en opkaldsstabel? - definition fra techopedia

Hvad er en opkaldsstabel? - definition fra techopedia

Indholdsfortegnelse:

Anonim

Definition - Hvad betyder Call Stack?

En opkaldsstabel i C # er listen over navne på metoder, der kaldes på kørselstidspunkt fra starten af ​​et program, indtil udførelsen af ​​den aktuelle erklæring.

En opkaldsstabel er hovedsageligt beregnet til at holde styr på det punkt, hvortil hver aktiv subroutine skal returnere kontrol, når den er færdig med at udføre. Opkaldsstabel fungerer som et værktøj til fejlsøgning af et program, når metoden, der skal spores, kan kaldes i mere end en sammenhæng. Dette er et bedre alternativ end at tilføje sporingskode til alle metoder, der kalder den givne metode. Hver gang en undtagelse kastes hvor som helst i brugerkoden, vil Common Language Runtime (CLR) slappe af opkaldsstakken og søge efter fangstblokken for at bestemme den specifikke undtagelsestype. Hvis der ikke er nogen passende behandler, afslutter CLR ansøgningen. Opkaldsstabel bruges derfor til at fortælle eksekveringsmarkøren, hvor den skal gå næste.

Techopedia forklarer Call Stack

Opkaldsstabel er organiseret som "stak", en datastruktur i hukommelsen til at gemme elementer på en sidst-til-første-ud måde, så den, der ringer til subroutinen skubber returadressen på stakken og den kaldte subroutine, efter at have afsluttet, vises returadressen fra opkaldsstakken for at overføre kontrol til den adresse.

I C # starter ethvert program med en "hoved" -metode, som igen kalder andre metoder. Ved hvert opkald til en metode tilføjes metoden øverst i stakken og fjernes fra stakken, når den vender tilbage til den, der ringer op. Omfanget af en variabel, der er erklæret i en blok, bestemmes også fra det tidspunkt, hvor dens værdi skubbes ind på stakken (som en del af opkaldsstakken), indtil udførelsen forlader blokken, når variablen og opkaldsstakken poppes ud af stakken. Stablen opretholder således både lokale variabler (værdityper) og opkaldsstakken (stakrammer), hvis størrelse angiver kompleksiteten af ​​et program.

Denne definition blev skrevet i forbindelse med C #
Hvad er en opkaldsstabel? - definition fra techopedia