본문 바로가기

C++

[C++] extern

반응형

extern다른 소스 파일에 선언된 전역 변수 또는 함수를 참조할 때 사용된다. extern을 사용함으로써 다른 파일에 해당 변수 및 함수가 선언되어 있다는 정보를 컴파일러에게 알려준다.

 

그리고 함수 선언에는 extern이 'default' 되어 있기 때문에 extern의 생략이 가능하다.

 

 


보통 소스 파일(.cpp)에 전역 변수를 선언한 다음, 헤더 파일(.h)에서 해당 변수를 extern 하고 다른 파일에 include 하여 사용한다.

 

extern.h

// extern.h

// "extern.cpp"에 선언된 전역변수 'externTest'를 참조한다.
// 따라서 "extern.h"를 include 하는 .cpp 파일은 모두 'externTest' 변수를 참조할 수 있다.
extern int externTest;

 

extern.cpp

// extern.cpp

#include "externTest.h"

int externTest = 9;	// 초기화

 

main.cpp

// main.cpp

#include <iostream>
#include "externTest.h"

int main(){

	using namespace std;

	cout << "Extern Test." << endl;
	cout << "externTest: " << externTest << endl;
    
	return 0;
}

 


 

반면에 static 변수로 선언하면 해당 파일 안에서만 사용이 가능하다.

따라서 extern을 사용해도 다른 파일에서 참조할 수 없다.

반응형