Будинки Розвиток Що таке стек викликів? - визначення з техопедії

Що таке стек викликів? - визначення з техопедії

Зміст:

Anonim

Визначення - Що означає стек викликів?

Стек викликів у C # - це перелік імен методів, викликаних під час виконання програми від початку програми до виконання поточного оператора.

Стек викликів в основному призначений для відстеження точки, до якої кожна активна підпрограма повинна повертати контроль, коли вона закінчує виконання. Стек викликів виконує функцію налагодження програми, коли метод, який слід відстежувати, може викликатись у більш ніж одному контексті. Це є кращою альтернативою, ніж додавання коду відстеження до всіх методів, які викликають даний метод. Кожного разу, коли в коді користувача буде викинуто виняток, загальна мова виконання (CLR) буде розкручувати стек виклику та шукати блок вилову для визначення конкретного виду виключення. Якщо немає відповідного обробника, CLR припиняє програму. Таким чином, стек викликів використовується для того, щоб вказати покажчику виконання, куди йти далі.

Техопедія пояснює стек викликів

Стек викликів організований як "стек", структура даних в пам'яті для зберігання елементів в режимі "останній-перший-вихід", так що абонент підпрограми натискає зворотну адресу на стек і викликану підпрограму після закінчення, вискакує зворотну адресу зі стека викликів, щоб передати управління на цю адресу.

У C # будь-яка програма починається з "основного" методу, який у свою чергу викликає інші методи. Під час кожного виклику методу метод додається у верхню частину стеку та видаляється зі стека після повернення до абонента. Також область змінної, оголошеної в блоці, визначається з моменту, коли її значення висувається на стек (як частина стека виклику) до тих пір, поки виконання не покине блок, коли змінна та стек виклику вискакують зі стека. Таким чином, стек підтримує як локальні змінні (типи значень), так і стек викликів (стеки кадрів), розмір яких вказує на складність програми.

Це визначення було написано в контексті C #
Що таке стек викликів? - визначення з техопедії