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

HyeJin Jang님의 프로필 이미지
HyeJin Jang

작성한 질문수

홍정모의 따라하며 배우는 C++

4.2 전역 변수, 정적 변수, 내부 연결, 외부 연결

46:07 variab extern variable 주소관련

작성

·

340

2

안녕하세요, 홍정모선생님. 

다름이 아니라 

Myconstants header파일에서 

 const double pi(3.1415);

 const double gravity(9.8);

상수를 초기화를 하고 main.cpp와 text.cpp  extern Constants::pi 사용하여 external linkage를 하였을 때 동일한 변수(pi)의 메모리주소가 달랐습니다.

하지만 myConstants  cpp파일 생성 후, MyConstants header파일에서는 변수만 선언하고(초기화안함), myConstant cpp 파일에서 변수 초기화를 하고 main.cpp와 test.cpp에서 사용하였을 때는 메모리 주소가 동일했습니다. 

새로운cpp 생성 하나만으로 어떻게 주소가 동일해 질 수 있을까요??? cpp파일과 header파일에 구조적 차이가 있는 건가요??

답변 2

0

HyeJin Jang님의 프로필 이미지
HyeJin Jang
질문자

감사합니다. 어느 정도 감이 잡힌 것 같습니다 :) 나머지 궁금한 사항이 있다면 직접 찾아보고 난 다음에 다시 문의드리겠습니다. 

0

홍정모님의 프로필 이미지
홍정모
지식공유자

cpp와 header는 컴파일 과정에서 다른 기능을 합니다.  예를 들면 cpp파일을 include하지 않지요. (강의에도 언급했는데 cpp를 include하는 아주 드문 경우도 있습니다만 권장하지 않습니다.)

C언어 강의에서 더 자세하게 다루는 내용인데 아래 영상이 도움이 될 것 같습니다.

https://youtu.be/ywMcjNBneIM

HyeJin Jang님의 프로필 이미지
HyeJin Jang

작성한 질문수

질문하기