전역 변수와 지역변수의 이름이 같으면 뭐가 사용되나?
지역변수가 사용된다.
이를 지역변수의 가시성이라고 한다.
#include <stdio.h>
int x = 5;
int y = 6;
int bts() {
int x = 3;
int y = 4;
return (x + y);
}
int main() {
printf("result=%d\\r\\n", bts());
}
함수 호출 --> 맨 위에 새로운 스택 생성 -> 이전 스택은 모두 invisible
맨 위란? 어드레스가 높은쪽? 낮은쪽?
생성된 새로운 스택을 active stack이라 한다.
active stack만 보이고, 나머지는 보이지 않는다.
active stack 이외의 나머지는 invisible이므로 변수가 동일해도 상관없다.
실습: 스택 메모리 값을 직접 찾아보자.