Typedef 이름은 이름 공간
사용 하 여 선언 되는 이름은 typedef (문 레이블은)을 제외한 다른 식별자와 동일한 이름 공간을 차지 합니다.따라서는 이전에 선언 된 이름과 같은 식별자를 제외 하 고는 클래스 형식 선언에 사용할 수 없습니다.다음 예제를 참조하십시오.
// typedef_names1.cpp
// C2377 expected
typedef unsigned long UL; // Declare a typedef name, UL.
int UL; // C2377: redefined.
다른 식별자에 관련 된 이름 숨기기 규칙에는 표시 유형을 사용 하 여 선언 되는 이름은 규정 typedef.따라서 다음 예제는 C++에서는입니다.
// typedef_names2.cpp
typedef unsigned long UL; // Declare a typedef name, UL
int main()
{
unsigned int UL; // Redeclaration hides typedef name
}
// typedef UL back in scope