-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
@26:20 static 관련 질문
23.11.15 07:55 작성 조회수 211
1
@26:20 에 "일단 이 static 은 문법상 이 전역변수가 다른 cpp 파일에서 사용될 수 없도록 막아주는 역할을 해요" 의 의미가
링킹시, namespace 혹은 class 내부에 static 이 정의 되어있지 않으면 다른 cpp 파일에서 접근할수 없기 때문인게 맞을까요? 접근 제한자의 느낌은 아닌것같고, extern variable 과 비교하기 위해서 설명을 저렇게 하신건지 궁금합니다. !
답변을 작성해보세요.
2
Soobak
2023.11.15
안녕하세요, 답변 도우미 Soobak 입니다.
전반적으로 잘 이해하신 것 같지만, 조금 혼동하시는 부분 또한 있으신 것 같아 부연 설명을 드려봅니다.
static
키워드로 선언한 전역변수는 "내부 연결" 이 되어 해당 소스 파일에 대해서만 내부적으로 존재합니다.
따라서, static
전역변수는 링크 범위를 해당 변수가 선언된 소스 파일 내에서만 보이도록 합니다.
즉, 다른 소스 파일이나 오브젝트 파일들에서는 해당 변수를 볼 수 없습니다.
이는 namespace
나 class
내부의 static
정의 유무와는 별개의 문제입니다.
말씀해주신 것 처럼 "외부 연결" 이 되는 extern
키워드로 선언한 전역변수와의 비교, 즉, '전역 변수의 연결 범위'에 초점을 맞추어서 학습을 하시는 것이 좋을 것 같습니다.
추가적으로, 해당 강의의 47:00 부분 경에서 교수님께서 정리해주시는 내용과, 이어지는 섹션들의 강의를 학습하시면서 static
키워드가 사용되는 경우들을 학습하시다보면, 궁금하신 내용이 보다 더 명쾌하게 잘 이해되실 것 같습니다.
dkwlsfk2323
질문자2023.11.16
이해 했습니다 🙂
namespace 혹은 class 외부에 선언된 "전역변수" 와, namespace/class 내부에서 전역적 으로 사용되는 변수들과 혼돈이 있었던것 같네요. 현재 강의 에선 전자에 속하는 전역변수에 전제를 두고 있다는것을 간과 했던것같습니다.
삐른답변 감사합니다.
답변 1