먼저 생활 비유
접시 쌓기
마지막에 올린 접시를 먼저 꺼내듯, 가장 최근에 호출한 함수가 먼저 끝나야 바깥 함수로 돌아갑니다.
3.3 · 메모리와 포인터
함수가 끝난 뒤 원래 코드의 다음 줄로 돌아가는 방법은 무엇일까요?
함수를 호출할 때 복귀 주소, 매개변수, 지역 변수 등을 스택 프레임으로 쌓습니다.
먼저 생활 비유
마지막에 올린 접시를 먼저 꺼내듯, 가장 최근에 호출한 함수가 먼저 끝나야 바깥 함수로 돌아갑니다.
컴퓨터 예제로 바꾸기
main() { total(); }
total() { add(); }add 프레임이 맨 위에 있고 끝나면 total 프레임, 그다음 main 프레임이 다시 드러납니다.
지금 일어나는 변화
main의 지역 변수와 복귀 정보가 놓입니다.
이 그림에서 기억할 한 문장
호출 스택은 중첩된 함수의 지역 상태와 돌아갈 위치를 후입선출 순서로 보관합니다.
현재 상태
30초 확인 문제
main이 A를 호출하고 A가 B를 호출했다면 가장 먼저 반환하는 함수는?
처음 보는 용어 두 개
이 절을 다 읽었다면
호출 스택은 중첩된 함수의 지역 상태와 돌아갈 위치를 후입선출 순서로 보관합니다.