강의

멘토링

커뮤니티

Inflearn Community Q&A

windfall46475972's profile image
windfall46475972

asked

[MMORPG Game Development with C++ and Unreal Series] Part 1: Introduction to C++ Programming

Stack memory

bp관련 질문입니다.

Written on

·

175

1

스택에서 함수를 2개쓴다 가정하고

1번함수 이전bp값을 BP에 저장하고

2번함수로 넘어가서 2번함수의 이전bp값을 또 저장할때 BP에 넣는데

이러면 1번함수의  BP값을 에 2번함수의 BP값으로 덮어씌우는데

그러면 1번함수의 BP값이 소실되어 1번함수의 스택프레임 공간을 모르는게 아닌가요?

C++

Answer 1

1

Rookiss님의 프로필 이미지
Rookiss
Instructor

네 맞습니다.
그렇기 때문에 기존에 사용한 base pointer 값을 어딘가에 저장해둬야 하는데,
실제 함수가 시작하는 코드를 보면 항상 push ebp가 있고 끝날 무렵 pop ebp가 있습니다.
기존 BP를 잠시 스택에 보관했다가, 현 함수가 끝나갈 무렵 이전 BP로 복원해서 마치는 것이죠.

windfall46475972's profile image
windfall46475972

asked

Ask a question