본문 바로가기

C

c++ extern static 기록 정리

extern은 외부에서 함수나 변수를 가져올 떄 정의하는 것이다.

main.cpp에서 extern int i;

foo.cpp 에서 i=10을 정의했다면

링크 할때 main.cpp의 i를 foo.cpp에서 가져온다.

 

static은 해당 파일(foo.cpp)에서만 쓰이는 거다

foo.cpp에서 static을 사용한다면

foo.cpp에서만 효력이 유효하다.

 

 

마지막으로 extern "C" 는

함수 앞에 붙이는 것인데

c++에서는 function overloading 때문에

name mangling이 되는데

extern "C"를 하면 name mangling을 없애주어서 C 스타일로 바꿔준다.