더북(TheBook)

그림 1-1로 살펴볼까요?

▲ 그림 1-1 스택 프레임

코드와 그림을 비교해 보면 # 3에서 매개변수로 전달된 ab# 1# 2에 있는 ab가 아님을 알 수 있습니다. # 3에서 함수가 호출된 순간 매개변수를 비롯한 지역 변수를 저장할 공간을 따로 만들고, 전달된 1020이라는 ab 값만 복사하여 전달하게 됩니다. 최종적으로 ab의 연산이 끝나고 c에 값이 잘 저장된 후에는 return을 만나면 함수가 종료되는데, 이때 만들어졌던 add_two 함수의 스택 프레임 역시 사라집니다. 스택 프레임의 생성 시기는 함수를 호출했을 때고, 소멸 시기는 함수 실행이 종료되었을 때입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.