-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
Internal Linkage 질문
23.06.07 10:49 작성 조회수 233
1
25:10 초 쯤부터
Internal Linkage 에 대한 설명을 하십니다.
int g_a = 1;
이 Internal Linkage 로 개별 cpp파일 안에서만 전역변수처럼 작용한다고 하셨습니다.
그런데 그 후에 26분 쯤에서는
static int g_a = 1;
에서 static이 이 변수가 다른 cpp파일에서 쓰이지 못하게 제한해준다고 하셨는데,
이미 제한해줄 게 없이 이거는 이미 Internal Linkage 변수가 아닌가요..?
static 이 없으면 파일 안에서만 전역변수가 되는 것이 아니라, 전체 파일에서의 전역변수가 되는 것이고 static이 있어야만 파일 내의 전역변수가 되는 건가요?
이 부분을 여러번 돌려봤지만 너무 헷갈려서 질문 드립니다.
답변을 작성해보세요.
1
Soobak
2023.06.07
안녕하세요, 답변 도우미 Soobak 입니다.
말씀하신 것과 같이 int g_a = 1;
과 같이 선언된 전역 변수는 Internal Linkage 변수입니다.
'다른 .cpp
파일에서 접근할 수 있는 전역 변수' 의 개념 및 설명과 '다른 .cpp
파일에서는 접근하지 못하게 하는 전역 변수' 개념 및 설명의 구분을 위해 static
키워드를 먼저 학습하신 것으로 이해하시면 좋을 것 같습니다. static
키워드로 한정한 전역 변수는 다른 .cpp
파일에서 쓰이지 못하게 제한되는 것이 맞습니다.
바로 이어서 등장하는 extern
키워드의 내용을 학습하고 나시면 궁금하신 부분들이 잘 해결되실 것 같습니다.
답변 1