Стек вызовов

Стек вызовов (англ. call stack) — специальный участок памяти, организованый в виде стека для хранения информации о выполняющихся (вызванных) функциях (процедурах) в компьютерной программе. Под вызванной функцией (процедурой) понимается функция, которая была вызвана, но ещё не завершила своё выполнение. Так первой в стеке вызовов идёт функция, которая исполняется в данный момент, затем функция, из которой произошёл вызов той функции, которая исполняется в данный момент. Третья функция в стеке вызовов — это та функция, во время выполнения которой был осуществлен вызов второй в списке функции, и т.д. В стеке вызовов у функций указываются значения аргументов, с которыми они были вызваны.

Стек вызовов с большинстве компьютерных архитектур хранится в программном стеке. Для этого в программный стек в момент вызова функции помещается следующий блок информации (стековый фрэйм англ. stack frame):

  • адрес возврата (адрес оператора, который идет сразу оператора, в котором произошёл вызов функции);
  • адрес начала предыдущего стекового фрейма;
  • параметры для вызванной функции;
  • локальные переменные вызванной функции и другие временные данные;

См. также

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home