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값 모두 출력이 되는 것이다.
댓글 쓰기