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

请参见

参考

typedef说明符