다음을 통해 공유


이름 공간

컴파일러 "이름 공간"을 설정 하는 다양 한 종류의 항목에 사용 되는 식별자를 구분할 수 있습니다.각 네임 스페이스 내의 이름 충돌을 피하기 위해 고유 해야 하지만 이름이 둘 이상의 네임 스페이스에 표시 될 수 있습니다.이 서로 다른 네임 스페이스에 있는 항목은 동일한 식별자를 사용할 수 있는 두 가지 이상의 다른 항목을 의미 합니다.컴파일러가 구문 식별자 프로그램에 따라 참조를 확인할 수 있습니다.

[!참고]

C + + "네임 스페이스" 기능 사용 하 여 네임 스페이스에 대 한 제한 된 C 개념을 혼동 하지 마십시오.참조 하십시오 네임 스페이스 c에서+ + 언어 참조 에 대 한 자세한 내용은.

이 목록은 C에 사용 되는 네임 스페이스를 설명 합니다.

  • 레이블 문
    명명 된 문 레이블은 문의 일부입니다.정의는 문 레이블은 콜론 하지만의 일부가 되어가 항상 따를 경우 레이블.문 레이블은 항상 사용 키워드 바로 뒤에 goto.문 레이블은 다른 이름 또는 다른 함수에서 레이블 이름을 구분 될 필요는 없습니다.

  • 구조체, 공용 구조체 및 열거형 태그
    이러한 태그 구조체, 공용 구조체 및 열거형 형식 지정 자가 포함 되며, 항상 바로 예약 된 단어 뒤에 있는 경우, struct, union, 또는 enum.태그 이름을 구별에서 다른 모든 구조체, 열거형 또는 공용 구조체 태그와 동일 하 게 표시 되어야 합니다.

  • 구조체 또는 공용 구조체의 멤버
    각 구조체 및 공용 구조체 형식에 관련 된 네임 스페이스에 멤버 이름이 할당 됩니다.즉, 같은 식별자 구조체 또는 공용 구조체의 여러에서 구성 요소 이름을 한 번에 수 있습니다.정의의 구성 요소 이름에는 항상 구조체 또는 공용 구조체 형식 지정자에서 발생할.구성 요소 이름은 항상 사용 멤버 선택 연산자는 바로 뒤에 (->.).구성원 이름 구조체 또는 공용 구조체 내에서 고유 해야 하지만 구조 자체의 이름이 나 다른 구조체 및 공용 구조체에 멤버의 이름을 포함 하 여 프로그램의 다른 이름에서 구별 되어야 하지 않습니다.

  • 일반 식별자
    다른 모든 이름 변수와 함수 (형식 매개 변수 및 지역 변수를 포함), 열거형 상수를 포함 하는 네임 스페이스에 속합니다.블록을 재정의 하려면 식별자 이름을 표시, 중첩 된.

  • 형식 정의 이름
    Typedef 이름이 같고 같은 범위 식별자로 사용할 수 없습니다.

세 가지 항목 구조 태그 고 구조체 멤버 변수 이름을 세 가지 서로 다른 네임 스페이스에 있으므로 이름이 지정 하는 예를 들어, student 이 예제에서는 충돌 하지 않습니다.각 항목의 각 항목을 정확한 해석을 허용 student 에서 프로그램.(구조에 대 한에 대 한 자세한 내용은 구조체 선언의입니다.)

struct student {
   char student[20];
   int class;
   int id;
   } student;

때 student 뒤에 있는 struct 키워드를 컴파일러 인식 그 구조가 필요할 때입니다.때 student 멤버 선택 연산자 다음에 나타납니다 (-> 또는 .), 구조체 멤버를 참조 하는 이름입니다.다른 컨텍스트에서 student 구조체 변수를 참조 합니다.그러나 의미를 보이지 않게 되므로 태그 이름 공간 오버 권장 되지 않습니다.

참고 항목

개념

프로그램 구조