헤더 파일에서 정적 전역 변수와 정적 데이터 멤버 구별
C에서 헤더 파일에 선언된 정적 변수는 정의된 변수와 상당한 차이를 나타냅니다. 클래스 내에서.
헤더의 정적 전역 변수 파일
일반적인 믿음과는 달리 헤더 파일의 정적 변수는 자체 범위를 갖지 않습니다. 헤더를 참조하는 각 소스 파일에 포함되어 각각 해당 번역 단위와 연결된 여러 인스턴스가 생성됩니다. 결과적으로 그 범위는 사용되는 번역 단위로 제한됩니다.
클래스의 정적 데이터 멤버
반면, 클래스 내에 선언된 정적 데이터 멤버는 서로 공유됩니다. 클래스의 모든 인스턴스. 이 속성은 내부 연결 개념에서 비롯됩니다. 클래스의 모든 개체는 정적 데이터 멤버에 대해 동일한 값에 액세스합니다. 정적 데이터 멤버의 초기화는 일반적으로 클래스 정의가 포함된 .cpp 파일에서 발생합니다.
키 구별
이 구별은 헤더 파일에서 static이라는 사실에 있습니다. context는 내부 연결을 나타내는 반면, 클래스 내의 static은 클래스의 모든 인스턴스에 대한 공유 멤버 변수를 나타냅니다. class.
의미
헤더 파일에서 정적 변수를 선언하는 것은 값이 충돌하는 여러 인스턴스가 발생할 수 있으므로 바람직하지 않은 경우가 많습니다. C에서 내부 연결을 달성하려면 헤더 파일의 정적 전역 변수에 의존하는 대신 익명 네임스페이스를 사용하는 것이 좋습니다.
위 내용은 C 헤더 파일의 정적 전역 변수와 정적 데이터 멤버의 주요 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!