2014-02-12 2 views
-1

헤더 파일이 포함 된 main.cpp 프로그램이 있습니다. 함수의 구현은 다른 cpp 파일에 있습니다.외부 변수 C++ 연결 오류

+2

[도움말 페이지] (http://stackoverflow.com/help), 특히 [여기에 대해 내가 들려 줄 주제는 무엇입니까?] (http : // stackoverflow.com/help/on-topic) 및 [ "어떤 유형의 질문을하지 않아야합니까?"] (http://stackoverflow.com/help/dont-ask). 더 중요한 것은 [Stack Overflow question checklist] (http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist)를 읽어보십시오. 또한 [SSCCE] (http://sscce.org/)가 무엇인지 배우고 싶을 수도 있습니다. –

+1

코드를 보여주기 위해 –

+1

변수는'main()'함수에서 선언 되었는가? 그것들은 [전역 변수] (http://www.learncpp.com/cpp-tutorial/42-global-variables/)가되기 전에 만들어 져야합니다. – Proxy

답변

0

main에 변수의 실제 저장소를 선언 했습니까? 아래 예에서 외부 변수는 common.h에 선언되어 있습니다. 그러나이 저장소의 실제 저장소는 main.cpp에 있습니다.

==> common.h <== 
extern int var1, var2, var3, var4; 

==> main.cpp <== 
#include <iostream.h> 
#include "common.h" 
#include "other.h" 

int var1, var2, var3, var4 = 4; /* the actual storage */ 
int main(int argc, char **argv) 
{ 
    std::cout << sumVars() << endl; 
} 

==> other.h <== 
int sumVars(); 

==> other.cpp <== 
#include "common.h" 

int sumVars() { 
    return var1 + var2 + var3 + var4; 
} 
+0

내 코드와 비슷하지만 main()에서 이러한 변수를 선언했습니다. 다른 cpp 파일에서 선언 된 다른 함수에서 어떻게 사용할 수 있습니까? Lifny –

+0

main 내에 선언 한 경우 스택에있는 로컬 변수이며 같은 소스 파일에서도 다른 함수에서 직접 사용할 수 없으며 외부 링키지를 가질 수 없습니다. –