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

Jason Hong님의 프로필 이미지
Jason Hong

작성한 질문수

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

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

int g_x vs extern int g_x

작성

·

222

2

안녕하세요 교수님

마지막에 정리해주시는 부분에서..

아래와 같이 해주셨는데,

int g_x 와 extern int g_x 가 개념이 헷갈리네요.

extern 을 쓰면 다른 cpp 에 있는 변수를 가져다 쓸 수 있는것은 알겠는데, int g_x 라고 하는경우에는 어떻게 external linkage가 되는것인가요?

/*
* int g_x; //external linkage
* static int g_x; //internal linkage
* const int g_x; // X. needs to initialize it
*
* extern int g_z;
* extern const int g_z;
*
* int g_y(1);
* static int g_y(1);
* const int g_y(1);
*
* extern int g_w(1);
* extern const int g_w(1);
*/

답변 3

0

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

당연히 궁금하실만한 내용입니다. 지금 유튜브에 연재중인 C강의에서 곧 링키지를 자세히 다루는데 그때 보시면 도움이 될 것 같습니다. 당장 궁금하시다면 learncpp.com의 해당 강의(강의 숫자가 비슷합니다)도 참고하세요.

0

Jason Hong님의 프로필 이미지
Jason Hong
질문자

답변 감사합니다.

 제가 이해가 부족한것 같은데, 좀 더 구체적으로 초기화 안된것이 어떤 영향을 미친것인지 알 수 있을까요?

강의 중에 제가 들은 것을 바탕으로는..

int g_x 와 extern int g_x  에서 extern은 생략할 수 있는 것같은데, 다른 cpp파일에도 int g_x가 있는 경우를 제외하고 어느경우에 꼭 extern을 써줘야 하는 것인가요?

0

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

안녕하세요? 초기화가 안된 전역변수라서 그렇습니다.

Jason Hong님의 프로필 이미지
Jason Hong

작성한 질문수

질문하기