컴퓨터/C
static은 사전적 의미로 정적이다라는 의미를 가지고 있습니다.
말 그대로 static 키워드를 사용하면 움직이지 않는 정적인 변수를 만들 수 있습니다.
지역변수 - 지역변수는 지역에 존재하는 변수로 메모리 stack영역에 저장되며 중괄호 { } 안에 포함된다.
전역 변수 - 전역 변수는 프로그램 모든 곳에서 쓰이며 메모리 data영역에 저장된다.
지역 변수와 전역 변수의 개념을 이해하고 있다면, 여기에 정적인 의미를 가진 static을 연결하면 어떻게 되는지 알아보겠습니다.
int g_a = 1;
static int g_sa = 1;
int main()
{
return 0;
}
정적 지역변수
void func()
{
int counter = 0;
counter++;
printf("지역 변수 counter 의 값 : %d\n",counter);
static int static_counter = 0;
static_counter++;
printf("정적 변수 static_counter 의 값 : %d\n",static_counter);
}
int main()
{
func();
func();
func();
return 0;
}
하지만 지역변수의 특성인 해당 지역에서만 사용하는 특성은 그대로 가지고 있기 때문에 다른 지역에서의 접근은 불가능합니다.
void func()
{
int counter = 0;
counter++;
printf("지역 변수 counter 의 값 : %d\n", counter);
static int static_counter = 0;
static_counter++;
printf("정적 변수 static_counter 의 값 : %d\n", static_counter);
}
int main()
{
func();
func();
func();
static_counter = 100; // error 발생 !
return 0;
}
이런 식으로 static 키워드를 통해 변수에 정적인 개념을 더 하여 다양하게 활용할 수 있습니다.
C 언어 - 함수의 원형 선언 (0) | 2021.06.29 |
---|---|
C 언어 - 소스파일 나누기 (0) | 2021.06.28 |
C 언어 - Stack Frame (스택 프레임) (0) | 2021.06.26 |
C 언어 - 다중 포인터 (2) | 2021.06.24 |
C 언어 - 구조체 포인터 (0) | 2021.06.23 |
91년생 공학엔지니어의 개발일지
TODAY :
YESTER DAY :
TOTAL :
Commnet