다음을 통해 공유


선언 지점

선언자 바로 뒤, 이니셜라이저 앞(선택 사항)에서 이름이 선언된다고 간주합니다. 선언자에 대한 자세한 내용은 선언자를 참조하십시오. 이름을 지정하는 식별자 바로 뒤, 이니셜라이저 앞(선택 사항)에서 열거자가 선언된다고 간주합니다.

다음 예제를 고려해 보십시오.

// point_of_declaration1.cpp
// compile with: /W1 
double dVar = 7.0;
int main()
{
   double dVar = dVar;   // C4700
}

선언 시점이 초기화 후일 경우 로컬 dVar이 전역 변수 dVar의 값인 7.0으로 초기화됩니다. 그러나 그런 경우는 아니므로 dVar이 정의되지 않은 값으로 초기화됩니다.

열거자는 같은 규칙을 따릅니다. 그러나 열거형의 바깥쪽 범위로 열거자를 내보냅니다. 다음 예제에서 Spades, Clubs, Hearts 및 Diamonds 열거자가 선언됩니다. 열거자를 바깥쪽 범위로 내보내므로 전역 범위가 있다고 간주합니다. 예제의 식별자는 이미 전역 범위에 정의되어 있습니다.

다음 코드를 살펴보십시오.

const int Spades = 1, Clubs = 2, Hearts = 3, Diamonds = 4;
enum Suits
{
    Spades = Spades,     // error
    Clubs,               // error
    Hearts,              // error
    Diamonds             // error
};

위의 코드에 있는 식별자는 이미 전역 범위에 정의되어 있으므로 오류 메시지가 생성됩니다.

참고

같은 이름을 사용하여 둘 이상의 프로그램 요소(예: 열거자 및 개체)를 참조하는 것은 좋은 프로그래밍이 아니므로 권장하지 않습니다.위의 예제에서 이로 인해 오류가 생성됩니다.

참고 항목

참조

범위