6월 29, 2016

external linkage VS internal linkage

title: external linkage VS internal linkage
tag:

컴파일러는 컴파일 시 translation unit을 생성함.

translation unit
implementation file(*.cpp, *.cxx)에서 생성된 object 파일과 이 파일에서 include 된 모든 헤더 파일을 합친 것.
Internal linkage란 이 translation unit 안의 범위에 있는 것을 의미. 반대로 External linkage란 특정 translation unit의 외부에서도 존재하는 것(즉, 프로그램 어디서든(선언된 파일이 아닌 다른 파일에서도) 접근이 가능한 변수)을 의미.

예를 들어, static은 internal linkage를 가지며 선언된 파일 안에서만 접근이 가능함. 반면에 global variable은 external linkage를 가지며 선언된 파일 바깥에서도 extern 선언만 하면 프로그램 어디서든 접근이 가능함.


Reference

댓글 없음:

댓글 쓰기