Static은 C 프로그래밍 언어에서 사용되는 키워드입니다. 변수와 함수 모두와 함께 사용할 수 있습니다. 즉, 정적 변수와 정적 함수도 선언할 수 있습니다. 일반 변수는 정의된 범위로 제한되는 반면 정적 변수의 범위는 프로그램 전체에 적용됩니다.
SQL의 여러 테이블에서 선택
정적 키워드는 다음과 같은 상황에서 사용할 수 있습니다.
전역 변수가 static 키워드로 선언되면 이를 정적 전역 변수라고 합니다. 이는 프로그램 상단에 선언되며 프로그램 전체에 걸쳐 가시성이 있습니다.
함수가 정적 함수라고 알려진 정적 키워드를 사용하여 선언된 경우. 수명은 프로그램 전체에 걸쳐 있습니다.
지역 변수가 static 키워드로 선언되면 이를 정적 지역 변수라고 합니다. 정적 지역 변수의 메모리는 프로그램 전체에서 유효하지만 변수의 가시성 범위는 자동 지역 변수와 동일합니다. 그러나 함수가 첫 번째 함수 호출 중에 정적 지역 변수를 수정하면 이 수정된 값을 다음 함수 호출에도 사용할 수 있습니다.
클래스에서 static 키워드를 사용하여 멤버 변수를 선언하는 경우 이를 정적 멤버 변수라고 합니다. 특정 인스턴스가 아닌 클래스의 모든 인스턴스에서 액세스할 수 있습니다.
static 키워드로 선언된 클래스의 멤버 함수를 정적 메서드라고 합니다. 특정 인스턴스가 아닌 클래스의 모든 인스턴스에서 액세스할 수 있습니다.
예를 통해 이해해 봅시다.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { int count=0; // variable initialization count++; // incrementing counter variable return count; }
위 코드에서는 func() 함수가 호출됩니다. func()에서는 count 변수가 업데이트됩니다. 함수 실행이 완료되자마자 count 변수의 메모리가 제거됩니다. 메모리에서 개수를 제거하지 않으려면 count 변수를 정적으로 사용해야 합니다. 변수를 static으로 선언하면 함수 실행이 완료되더라도 변수는 메모리에서 제거되지 않습니다.
산출
1 1
정적 변수
정적 변수는 다양한 함수 호출에서 해당 값을 유지하는 변수입니다.
통사론
정적 변수의 구문은 다음과 같습니다.
static data_type variable_name;
정적 변수의 간단한 예를 살펴보겠습니다.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { static int count=0; count++; return count; }
위 코드에서는 count 변수를 static으로 선언했습니다. func()가 호출되면 count의 값은 1로 업데이트되고 다음 함수 호출에서는 count 변수의 값이 2가 됩니다. 따라서 정적 변수의 값은 함수 호출 내에서 지속된다고 말할 수 있습니다. .
산출
1 2
정적 함수
비정적 함수가 기본적으로 전역 함수라는 것은 파일 외부에서도 함수에 액세스할 수 있다는 것을 의미하지만, 함수를 정적으로 선언하면 함수 범위가 제한됩니다. 정적 함수는 파일 내에서만 액세스할 수 있습니다.
정적 함수는 다음과 같습니다:
static void func() { printf('Hello javaTpoint'); }
정적 변수와 전역 변수의 차이점
전역 변수는 함수 외부에 선언된 변수입니다. 이러한 전역 변수는 프로그램 시작 부분에 존재하며 해당 범위는 프로그램이 끝날 때까지 유지됩니다. 프로그램 외부에서도 접근이 가능합니다.
정적 변수는 해당 변수가 정의된 소스 파일로 제한됩니다. 즉, 다른 소스 파일에서는 액세스할 수 없습니다.
정적 변수와 전역 변수 모두 정적 초기화를 갖습니다. 여기서 정적 초기화는 변수에 값을 할당하지 않으면 기본적으로 0 값이 변수에 할당됨을 의미합니다.
정적 지역 변수와 정적 전역 변수의 차이점
정적 전역 변수
함수 외부에서 static 키워드로 선언된 변수를 정적 전역 변수라고 합니다. 프로그램 전반에 걸쳐 접근 가능합니다.
정적 지역 변수
정적 키워드가 있는 변수는 함수 내에서 선언되며 이를 정적 지역 변수라고 합니다. 정적 지역 변수의 범위는 자동 지역 변수와 동일하지만 해당 메모리는 프로그램 실행 전반에 걸쳐 사용할 수 있습니다. 함수가 한 번의 함수 호출 중에 정적 지역 변수의 값을 수정하면 다음 함수 호출 중에도 동일하게 유지됩니다.
정적 변수의 속성
정적 변수의 속성은 다음과 같습니다.
- 정적 변수의 메모리는 정적 변수 내에 할당됩니다.
- 해당 메모리는 프로그램 전체에서 사용할 수 있지만 범위는 자동 지역 변수와 동일하게 유지됩니다. 그것은
- 값은 다양한 함수 호출에서 유지됩니다.
- 변수에 값을 할당하지 않으면 기본값은 0이 됩니다.
- 전역 정적 변수는 프로그램 외부에서 액세스할 수 없지만 전역 변수는 다른 소스 파일에서 액세스할 수 있습니다.