-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
46분경 전역 상수 설명에서 메모리 주소에 대해 질문드립니다
24.05.26 15:40 작성 조회수 48
1
MyConstants에서 extern을 뺐을 때 main.cpp와 test.cpp에서 Constants::pi 의 주소가 다른 것은 이해가 됩니다. 근데 MyConstants에서 extern 대신에 static을 썼을 때는 프로그램 실행 시 최초에 한 번만 메모리 할당을 받기 때문에 그 주소가 같을 것이라 기대를 하였지만 다르게 나옵니다. 그 이유가 무엇일까요?
답변을 작성해보세요.
1
Soobak
2024.05.27
안녕하세요? 질문&답변 도우미 Soobak 입니다.
extern
키워드와 static
키워드로 한정된 변수가 '보이는' 범위가 다르기 때문입니다.
static
키워드는 '파일' 수준에서 해당 변수를 제한합니다.
따라서, 동일한 변수명이라고 하더라도 각 파일마다 독립적인 복사본이 생성되며, 각기 다른 메모리 주소를 가지게 됩니다.
답변 1