Share via


C++의 전역 상수

C++ 전역 상수에는 정적 연결이 있습니다. C와 다릅니다. 여러 파일에서 C++에서 전역 상수 사용하려고 하면 해결되지 않은 외부 오류가 발생합니다. 컴파일러는 전역 상수가 최적화되어 변수에 예약된 공간이 없습니다.

이 오류를 해결하는 한 가지 방법은 헤더 파일에 const 초기화를 포함하고 필요한 경우 함수 프로토타입인 것처럼 해당 헤더를 CPP 파일에 포함하는 것입니다. 또 다른 가능성은 변수를 비상수로 만들고 평가할 때 상수 참조를 사용하는 것입니다.

다음 샘플에서는 C2019를 생성합니다.

// global_constants.cpp
// LNK2019 expected
void test(void);
const int lnktest1 = 0;

int main() {
   test();
}

그리고

// global_constants_2.cpp
// compile with: global_constants.cpp
extern int lnktest1;

void test() {
  int i = lnktest1;   // LNK2019
}

참고 항목

링커 도구 오류 LNK2019