본문 바로가기

Cpp

스택 프레임(stack frame)

메모리의 스택(stack) 영역은 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역입니다.

스택 영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸합니다.

 

함수가 호출되면 스택에는 함수의 매개변수, 호출이 끝난 뒤 돌아갈 반환 주소값, 함수에서 선언된 지역 변수 등이 저장됩니다.

이렇게 스택 영역에 차례대로 저장되는 함수의 호출 정보를 스택 프레임(stack frame)이라고 합니다.

이러한 스택 프레임 덕분에 함수의 호출이 모두 끝난 뒤에, 해당 함수가 호출되기 이전 상태로 되돌아갈 수 있습니다.

 

LIFO - main 먼저 스택 프레임을 저장

 

LIFO - 출력 시 fun2() 가 먼저 인출된다

LIFO - 스택은 푸시(push) 동작으로 데이터를 저장하고, 팝(pop) 동작으로 데이터를 인출합니다.

 

'Cpp' 카테고리의 다른 글

추상클래스  (0) 2023.02.27
외부링크 내부링크  (0) 2023.02.23
변수주기  (0) 2023.02.23
Static  (0) 2023.02.23
프로그램의 실행 과정 메모리 구조  (0) 2023.02.23