C언어: Declarations vs Definitions of Variables
변수의 Declarations
변수의 타입을 정하는 것
변수의 Definitions
변수가 저장될 공간을 할당하는 것
보통의 경우, 변수는 선언과 동시에 정의된다.
변수를 정의하지 않고 선언만 하기 위해서는 어떻게 할까?
extern
keyword 사용
extern int i;
-> extern
keyword는 해당 변수가 프로그램의 다른 부분에서 이미 정의되었음을 컴파일러에게 알린다(대부분 다른 소스 파일). 따라서, 해당 변수의 공간을 다시 할당할 필요가 없어진다.
배열의 ‘선언’의 경우, 길이를 명시할 필요가 없어진다.
extern int a[];