C언어

global(전역변수) & static(정적변수) variable

고요한하늘... 2006. 3. 4. 19:36

global 변수 : 선언과 동시에 모든 파일에서 접근 가능한 변수

static 변수 : 선언된 파일 안에서만 접근 가능

 

 

main.c sub1.c sub2.c 라는 파일 있다면

 

main.c에서 선언한 global 변수 g_val 은 sub1.c나 sub2.c에서도 접근 가능하다

그러나 main.c에서 선언한 s_val은 sub1.c나 sub2.c에서 접근할수 없다.

 

간단한 사용 예를 보면 (gloval 변수)

########################################################

 

main.c ----------------------------------------------------

int g_val = 10;

main.c ----------------------------------------------------

 

sub1.c ----------------------------------------------------

printf("%d",g_val);

sub1.c ----------------------------------------------------

 

sub2.c ----------------------------------------------------

printf("%d",g_val);

sub2.c ----------------------------------------------------

########################################################

 

 

간단한 사용 예를 보면 (static 변수)

########################################################

main.c ----------------------------------------------------

tprintf();

main.c ----------------------------------------------------

 

 

sub1.c ----------------------------------------------------

tprintf()

{

    static int s_val = 10;

    printf("%d",s_val);

}

sub1.c ----------------------------------------------------

 

sub2.c ----------------------------------------------------

tprintf();

sub2.c ----------------------------------------------------

 

########################################################

'C언어' 카테고리의 다른 글

복잡한 함수포인터 읽기(고급)  (0) 2006.05.08
복잡한 함수포인터 (고급)  (0) 2006.05.05
iconv 를 이용한 문자열 변환(utf-8)  (0) 2006.04.04
가변인자  (0) 2006.03.04
이차원(2차원) 배열  (0) 2006.03.04