인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

피로한 문어님의 프로필 이미지
피로한 문어

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

TextRPG #1

11:30쯤에 생긴 질문

해결된 질문

작성

·

134

0

int변수를 while문 안쪽에 선언하는 경우, while문이 반복될 때마다 int변수의 생명주기는 끝나고 다시 시작되어 매번 int변수를 새로 선언하게 될 텐데 이 경우에, int변수를 while문 바깥에 한번만 선언하는 경우와 차이가 있나요?

객체를 만들 때는 차이가 있다는 것을 알고 있는데 그냥 단순히 변수를 선언하는 과정에 연산이 있는지 확실하지 않아 여쭤봅니다.

어셈블리어를 까보면 이 둘의 차이가 없는것같긴 한데 선언 시 '이 변수는 이 메모리 위치다'라고 지정하는 과정이 있다면, 그게 반복될 지도 모른다는 생각이 들어서요.

답변 1

2

Rookiss님의 프로필 이미지
Rookiss
지식공유자

'이 변수는 이 메모리 위치다'는 것은 컴파일 하는 순간에 이미 정해지고
EBP를 기준으로 하는 상대 주소로 결정됩니다. (물론 스택 위치)
따라서 객체가 아닌 일반 정수라면
while 안에 하나 밖에 하나 아무 차이가 없습니다!

피로한 문어님의 프로필 이미지
피로한 문어

작성한 질문수

질문하기