static 은 Internal Linkage
extern 은 external Linkage 라는데...
Linkage 는 사전적 의미로 연결, 관련, 연결 장치 이다.
직역하면 내부의 연결 장치, 외부의 연결 장치??
역시 용어만으로는 잘 모르겠고! 이것저것 찾아봤다..
Extern
Static
외에 끄적끄적...
요약
static (정적변수)
초기화는 처음 호출 시 딱 한번만 한다. static 변수의 데이터 값은 메모리에 유지된다.
해당 블록 안에서만 사용 할 수 있다.
전역변수처럼 메모리 값이 유지되지만 전역변수는 다른 파일에서도 사용 가능하다는 점이 다르다.
extern
extern 키워드는 생략 가능하다. 전역변수는 default 가 extern 이다.
반드시 초기화 한번은 해 주자.
다른 파일에서 사용 가능하다는 의미의 전역변수에는 extern 생략 가능하다.
그렇지만 이미 메모리에 할당되어 있는 다른 파일의 전역 변수와 메모리를 공유하겠다고 선언 할 땐
extern 키워드를 생략 할 수 없다.