정적 변수에는 파일 범위가 있습니다. 헤더 파일의 정적 변수
내가 선언 한 정적 변수가 모두 static int Var1
말
- file1.h
- file1.cpp
- file2.h
- file2.cpp : 나는 다음과 같은 두 가지 파일을 말해봐 헤더 파일.
file1.h
및file2.h
은main.cpp
파일에 포함되어 있습니다.정적 변수가 파일 범위를 가지므로 서로 충돌하지 않으므로이 작업을 수행했습니다. 하지만 컴파일이 끝나면 충돌이 있음을 발견했습니다.
이제 정적 변수는
extern
변수처럼 동작합니다. 반면에 두 .cpp 파일에서 정적 변수를 선언하면 잘 컴파일됩니다.이 동작을 이해할 수 없습니다.
어떤 시나리오에서이 시나리오에서 범위와 연결이 작동하는 방법을 설명 할 수 있습니까?
관련, https://wiki.sei.cmu.edu/confluence/display/cplusplus/DCL59-CPP.+Do+not+define+an+ ([헤더 파일에 이름없는 네임 스페이스를 정의하지 마십시오] 참조 이름이없는 + 네임 스페이스 + in + a + 헤더 + 파일) – jww