개인공부/C언어
C언어 - 정적 변수의 외부연결 (external linkage), 내부연결 (internal linkage)
무제1351
2020. 11. 13. 14:35
외부연결
번역단위(translation unit) : 대부분의 경우 파일. (c 파일)
컴파일러가 컴파일 할때는 c파일 단위로 한다. 따로 obj파일을 만들고 실행파일을 만들기 전에
각 obj를 linking 한다. 변수말고도 함수도 연결해준다.
int g_int;
int main(){
extern int g_int; // 파일안에 main()함수 밖의 g_int를 쓴다. // 내부변수로 인식안함
//extern int_int = 1024; //block scope 에러
//int g_int =123; // 밖의 global변수 g_int를 가려버려 지역변수 g_int를 쓴다.
return 0;
}
extern으로 외부 변수를 불러올때 자료형을 붙여주지 않아도 된다. 이미 선언될때 자료형까지 다 붙어서 선언 되었기때문.
내부 연결
출처 : 홍정모의 따라배우는 C언어