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 스타일로 바꿔준다.
'C' 카테고리의 다른 글
c++ heap memory space (0) | 2021.06.22 |
---|---|
c++ stack 공간, class, struct, 타입별 메모리 사이즈 (0) | 2021.06.22 |
c++ preprocessor 공부기록 ifdef, replace (0) | 2021.06.22 |
[C언어] 최소공배수 구하기 (정보처리기사 외) (0) | 2019.06.18 |
[c 언어] 소수의 개수 구하기 (1차원배열, do~while, while, if, 정보처리기사 외) (0) | 2019.06.18 |