C에서 전역 및 클래스 정적 변수 소멸
C에서 소멸자는 일반적으로 동적으로 할당된 개체와 연결되지만 이 동작이 확장됩니까? 전역 및 클래스 정적으로 선언된 변수에 적용됩니까? 이 문제를 명확히 하기 위해 구체적인 내용을 살펴보겠습니다.
먼저 전역 변수와 클래스 정적 변수는 일반적으로 스택이 아닌 프로그램 메모리의 데이터 섹션에 할당된다는 점을 이해하는 것이 중요합니다. 살다. 이러한 구별은 질문을 제기합니다: 이러한 변수에 대한 소멸자는 언제 청구됩니까?
C 03 표준(섹션 § 3.6.3)에 따르면 초기화된 정적 저장 기간 객체(블록 범위 또는 네임스페이스 범위에서 선언된 객체)에 대한 소멸자는 )은 메인 함수를 종료하거나 종료를 호출할 때 호출됩니다. 이러한 개체는 가장 최근에 초기화된 것부터 시작하여 가장 빠른 것부터 끝나는 순차적으로 삭제됩니다. 이 동작은 정적으로 초기화된 개체와 동적으로 초기화된 개체 모두에 적용됩니다.
또한 섹션 § 9.4.2 7에서는 정적 데이터 멤버가 비로컬 개체와 동일한 방식으로 초기화되고 삭제되도록 지정합니다. 그러나 관찰 가능한 동작이 없는 소멸자는 호출되지 않을 수 있다는 점은 주목할 가치가 있습니다.
위 내용은 C에서 전역 및 클래스 정적 변수에 대해 소멸자는 언제 호출됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!