함수나 변수 앞에 extern이라는 예약어가 붙으면 외부로 변수를 선언하게 된다.
변수의 extern
- 변수의 경우 extern이 앞에 붙어 선언하게 되면 외부로 변수를 선언하게 된다.
ex)
example.h 파일
#pragma once
#include <example.h>
int value = 1;
main.c 파일
#include "example.h"
void main()
{
value = 2;
}
다음과 같이 정의하게 되면 example.h 안에 있는 value를 읽어들이지 못하기 때문에 에러가 난다.
따라서 example.h파일에서 value 선언부분 앞에 extern을 붙여 value값을 main.c에서도 사용할 수 있게 할 수 있다.
example.h 파일
#pragma once
#include <example.h>
extern int value = 1;
함수의 extern
함수는 선언을 하게 되면 자동적으로 앞에 extern이 붙는다. 따라서 해더파일에서 함수를 선언하더라도 그 함수를 사용할 수 있는 것이다.
함수의 static
함수앞에 static이 붙게 되면 정적으로 고정되기 때문에 해당 해더파일에서만 그 함수를 사용할 수 있다.
'Programming > C' 카테고리의 다른 글
main(), wmain(), _tmain() 의 차이 (0) | 2012.11.12 |
---|---|
#pragma pack (0) | 2012.09.21 |
전처리기, 전처리 지시자 (0) | 2012.09.21 |
#pragma once와 #ifndef 의 차이 (0) | 2012.09.11 |
C Study 04 - 함수 (0) | 2012.08.08 |