#include <stdio.h>
void counter() {
static int count = 0;
count++;
printf("Count: %d\n", count);
}
int main() {
counter(); // Count: 1
counter(); // Count: 2
counter(); // Count: 3
return 0;
}
이 예제에서 count 변수는 함수가 호출될 때마다 이전 값을 유지하며 증가한다.
// file1.c
static int globalVar = 10;
void display() {
printf("Global Variable: %d\n", globalVar);
}
이 경우 globalVar는 file1.c 내에서만 접근 가능하며, 다른 파일에서는 사용할 수 없다.
메모리에 계속 남아있기 때문에, 과도한 사용 시 메모리 사용량이 증가할 수 있다.
static 변수는 함수의 매개변수로 사용할 수 없다.
전역 변수에 static을 붙이면 해당 변수의 사용 범위가 파일 내로 제한된다.