🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

46분경 전역 상수 설명에서 메모리 주소에 대해 질문드립니다

24.05.26 15:40 작성 조회수 48

1

MyConstants에서 extern을 뺐을 때 main.cpp와 test.cpp에서 Constants::pi 의 주소가 다른 것은 이해가 됩니다. 근데 MyConstants에서 extern 대신에 static을 썼을 때는 프로그램 실행 시 최초에 한 번만 메모리 할당을 받기 때문에 그 주소가 같을 것이라 기대를 하였지만 다르게 나옵니다. 그 이유가 무엇일까요?

답변 1

답변을 작성해보세요.

1

Soobak님의 프로필

Soobak

2024.05.27

안녕하세요? 질문&답변 도우미 Soobak 입니다.

 

extern 키워드와 static 키워드로 한정된 변수가 '보이는' 범위가 다르기 때문입니다.

 

static 키워드는 '파일' 수준에서 해당 변수를 제한합니다.

따라서, 동일한 변수명이라고 하더라도 각 파일마다 독립적인 복사본이 생성되며, 각기 다른 메모리 주소를 가지게 됩니다.

채널톡 아이콘