본문 바로가기

Programming/C

extern, 함수에서의 static

함수나 변수 앞에 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