Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 정적 스토리지 클래스


정적 저장 클래스는 컴파일러가 프로그램의 수명 동안 지역 변수가 범위에 들어오고 나갈 때마다 생성 및 삭제하는 대신 로컬 변수를 유지하도록 지시합니다. 따라서 지역 변수를 정적으로 만들면 함수 호출 간에 값을 유지할 수 있습니다.

정적 수정자는 전역 변수에도 적용될 수 있습니다. 이 작업이 완료되면 해당 변수의 범위가 선언된 파일로 제한됩니다.

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