C언어 - 정적 변수의 외부연결 (external linkage), 내부연결 (internal linkage)

2020. 11. 13. 14:35개인공부/C언어

외부연결

번역단위(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언어