Itthon Fejlesztés Mi az a hívásverem? - meghatározás a techopedia alapján

Mi az a hívásverem? - meghatározás a techopedia alapján

Tartalomjegyzék:

Anonim

Meghatározás - Mit jelent a Call Stack?

A C # -ben szereplő hívásverem a futtatáskor meghívott módszerek nevét tartalmazza a program kezdetétől az aktuális utasítás végrehajtásáig.

A hívásverem elsősorban arra szolgál, hogy nyomon kövesse azt a pontot, amelyre az egyes aktív szubrutinoknak vissza kell adniuk az irányítást, amikor végrehajtják. A hívásverem eszközként szolgál az alkalmazások hibakeresésére, ha a nyomon követhető módszer több kontextusban is meghívható. Ez jobb alternatívát jelent, mint a nyomkövető kód hozzáadása az összes módszerhez, amely meghívja az adott módszert. Ha valamelyik kivételt a felhasználói kód bárhová eldobják, a Common Language Runtime (CLR) letekeri a hívásveremt, és keresi a fogási blokkot az egyedi kivétel típusának meghatározásához. Ha nincs megfelelő kezelő, a CLR leállítja az alkalmazást. A hívásverem tehát arra szolgál, hogy megmondja a végrehajtási mutatót, hogy hova menjen tovább.

A Techopedia magyarázza a Call Stack-et

A hívásverem „verem” -ként van rendezve, amely a memóriában lévő adatstruktúra az elemek utolsó tárolása céljából történő tárolására, úgy, hogy az szubrutin hívója a visszatérési címet a verembe és a meghívott szubrutinba tolja, felugrik a visszatérési címet a hívásveremből, hogy átvegyék az irányítást arra a címre.

A C #-ban minden alkalmazás "fő" módszerrel kezdődik, amely viszont más módszereket hív meg. Minden módszerhíváskor a módszert hozzáadják a verem tetejéhez, és a hívóhoz való visszatéréskor eltávolítják a veremből. Ezenkívül a blokkban deklarált változó hatókörét attól az időponttól határozzuk meg, amikor annak értékét a veremre toljuk (a hívásverem részeként), amíg a végrehajtás el nem hagyja a blokkot, amikor a változó és a hívásverem felpattan a veremről. Így a verem fenntartja mind a helyi változókat (értéktípusok), mind a hívás veremét (verem keretek), amelyek mérete a program összetettségét jelzi.

Ezt a meghatározást a C # összefüggésben írták
Mi az a hívásverem? - meghatározás a techopedia alapján