Public/tip & tech

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

quantapia 2009. 5. 12. 18:00

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 ----------------------------------------------------

 

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