정적 저장 클래스는 컴파일러가 프로그램의 수명 동안 지역 변수가 범위에 들어오고 나갈 때마다 생성 및 삭제하는 대신 로컬 변수를 유지하도록 지시합니다. 따라서 지역 변수를 정적으로 만들면 함수 호출 간에 값을 유지할 수 있습니다.
정적 수정자는 전역 변수에도 적용될 수 있습니다. 이 작업이 완료되면 해당 변수의 범위가 선언된 파일로 제한됩니다.
C++에서 static이 클래스 데이터 멤버에 사용되면 해당 클래스의 모든 개체에서 해당 멤버의 복사본 하나만 공유하게 됩니다.
예시
#include <iostream> void func( void ) { static int i = 10; // local static variable i++; std::cout << "i is " << i ; std::cout << " and count is " << count << std::endl; } static int count = 6; /* Global variable */ int main() { while(count--) { func(); } }
출력
이것은 출력을 제공합니다 -
i is 10 and count is 5 i is 11 and count is 4 i is 12 and count is 3 i is 13 and count is 2 i is 14 and count is 1 i is 15 and count is 0