inflearn logo
강의

講義

知識共有

[ゲーム プログラマー入門オールインワン] C++ & データ構造/アルゴリズム & STL & ゲーム数学 & Windows API & ゲームサーバー

ファイル分割

섹션3 '파일분할' 강의 질문입니다.

99

dijiket7906

投稿した質問数 2

0

Helper.h 헤더파일에서 void Test, void Test2 는

선언만 하고 Helper.cpp에서 초기화 한 뒤

GameCoding.cpp 메인에서 바로 사용이 가능했는데,

int GTest 는 왜 extern을 붙여줘야하는건가요??

 

실험해보니 extern 안붙여주니 사용이 안되던데 함수형과 변수형에서 차이가 나는건가요?

c++ 네트워크 ue-blueprint 게임수학 windows-api

回答 1

1

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 정문경님.

질문 주신 내용은 C++에서 헤더 파일과 cpp 파일의 변수 사용과 관련된 부분으로, 함수와 변수가 다른 방식으로 처리되는 이유에 관한 질문입니다.

기본적으로 C++에서는 변수를 여러 파일에서 사용할 때 외부 선언(extern)이 필요합니다. 이는 파일 간에 변수를 공유하기 위한 방법입니다. 함수의 경우에는 선언만으로도 여러 파일에서 사용할 수 있습니다. 이는 C++ 컴파일러가 함수 선언을 통해 함수의 존재 여부를 알 수 있기 때문입니다. 그러나 변수는 데이터가 저장되는 공간이므로 중복 선언을 방지하기 위해 extern을 사용하여 정확히 위치를 지정해주는 것이 필요합니다.

관련된 내용은 다음의 질문에서도 확인하실 수 있습니다.
- Test1.cpp에 대해 질문이 있습니다.
- 설명 요약: C++에서 cpp 파일은 독립적인 obj 파일로 만들어지므로, .cpp 파일의 내용을 다른 곳에서 사용하기 위해 선언된 변수나 함수를 포함해야 합니다. 그런데 함수는 선언만 해도 알아서 링크가 되지만, 변수는 extern 키워드를 통해 위치를 명시해줘야만 중복 선언 등의 오류를 피할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

dijiket7906

친절하고 자세한 답변 감사합니다! ^^

문제집은 없나요 수업을 어떻게 들어야 할지 모르겠어요

0

107

2

동적배열 Vector의 push_back 함수에서 조건문 질문

0

75

1

디버깅할때 메모리보는법 단축키가 뭐죠??

0

90

1

113-충돌처리 강의에서 22:26 부근의 SetPos()를 적용해도 충돌되지 않고 뚫고 지나가게 됩니다.

0

87

1

SaveFile에서 크래시 발생하는 분들 체크해보세요

1

70

1

수업자료 확인 부탁드립니다.

0

106

3

explicit을 붙였을 때 빨간줄이 뜨는 이유가 맞는지 궁금합니다.

0

100

0

22강에서 구조체와 포인터로 설명해주셨는데 패딩의 경우는 어떻게 되나요?

0

88

2

리소스 매니저 강의 18분 부근

0

89

1

[Service강의] owner -> shared_ptr

0

80

2

C#에서 생성자 관련 질문

0

83

2

특정 조건에서만 함수를 반환할 때

0

90

2

스택 empty

0

105

2

섹션4 배열실습 질문입니다.

0

133

1

Defines.h의 DECLARE_SINGLE관련 질문입니다.

0

110

1

세션8 우선순위 큐 pop함수의 Predicate 적용 관련 질문이 있습니다.

0

180

3

섹션9 함수 포인터 관련 질문입니다.

0

137

1

exercise_A 번 문제 해결방법에 대한 질문.

0

150

1

[강의명: virtual 소멸자] 자식 클래스의 소멸자에도 virtual 을 붙이시는 이유가 궁금합니다

0

198

2

Scene과 SceneManager 강의 수강 중 키보드 입력 오류

0

148

1

Window API 강의 수강 중 LARGE_INTEGER 타입 변환 오류

0

198

3

섹션15 스마트 포인터 20:00 질문이요!

0

127

1

55강 수업자료 빌드를 하면 이상합니다.

0

133

1

virtual 소멸자 관련 질문

0

169

1