Стек вызовов (от англ. call stack) — структура данных, которая управляет вызовами функций во время выполнения программы. 34
Основное назначение стека — отслеживать место, куда каждая из вызванных процедур должна вернуть управление после своего завершения. 1 Для этого при вызове процедуры в стек заносится адрес команды, следующей за командой вызова («адрес возврата»). 12
Если внутри одной функции вызывается другая, то компьютер ставит на паузу выполнение первой, сохраняет в стеке точку перехода, а затем выполняет вторую. 3 Когда же выполнена последняя функция, компьютер возвращается к первой, а программа продолжает работу с того же места. 3 При этом стек опустошается. 3
В многозадачных системах каждая задача, как правило, имеет свой собственный стек, и при переключении задачи указатель стека процессора переставляется на него. 12
Управление структурой вызовов происходит автоматически: операционная система или среда выполнения следят за добавлением и удалением кадров. 4 Это делает процесс надёжным и освобождает разработчика от необходимости вручную контролировать каждый шаг. 4