C#관련 Static을 붙이는 이유

C#관련  Static을 붙이는 이유


c#과 c에서 변수나 함수에 static이 붙게되면 
그 변수나 함수는 프로그램이 종료되기전까지 
메모리에 저장된 상태로 있다.

static이 붙지 않는다면 변수를 선언하고 
그 변수를 선언한 함수가 끝나면 그 변수값은 초기화가 된다.

c에서 간단하게 예를 들어 보겠다.


#include< stdio.h >

int f1(void)
{
int a = 10, b = 10;
int sum;
sum = a + b;
return sum;
}

main()
{
int i;
i = f1();
printf("%d %d", i, sum);
}
이 경우는 sum이란 변수가 출력이 되지 않습니다.
f1함수가 종료되면서 sum에 있는 값을 메인함수에 
i변수로 리턴시키고 sum함수를 초기화 했기 때문....

하지만 static을 이용하면

#include< stdio.h >

int f1(void)
{
int a = 10, b = 10;
static int sum;
sum = a + b;
return sum;
}

main()
{
int i;
i = f1();
printf("%d %d", i, sum);
}
이와같이 sum을 static으로 선언한다면 
i값과 sum값 모두 출력이 되는 것이다.

Post a Comment

다음 이전