함수 수준 정적 변수 할당 및 초기화
C에서 함수 수준 정적 변수는 평생 지속되는 데이터 유형입니다. 프로그램의. 전역 변수와 달리 전역 범위에서 선언되지 않고 함수 범위 내에서 선언됩니다. 이는 이러한 변수가 언제 할당되고 초기화되는지에 대한 의문을 제기합니다.
프로그램 시작 시 할당 및 초기화되는 전역 선언 변수와 달리 함수 수준 정적 변수는 첫 번째 호출 시 할당 및 초기화됩니다. 정의된 함수에. 이는 제공된 예제 코드에서 분명하게 드러납니다.
void doSomething() { static bool globalish = true; }
정적 변수 globalish는 doSomething 함수를 처음 호출할 때 초기화됩니다. 그 전에는 해당 값이 정의되지 않았습니다. 이 결과는 서로 다른 범위 내에서 인스턴스화된 객체의 생성 및 소멸과 관련된 이벤트를 인쇄하는 테스트 프로그램을 통해 확인되었습니다.
이러한 동작은 정적 변수가 메모리의 정적 영역에 저장된다는 사실에 기인합니다. 동일한 함수에 대한 모든 호출에서 공유됩니다. 따라서 함수 내에서 명시적으로 수정되지 않는 한 초기값은 호출 전반에 걸쳐 지속됩니다.
위 내용은 C의 함수 수준 정적 변수는 언제 어떻게 할당되고 초기화됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!