首页 > 解决方案 > 如何理解 typedef 的这种用法?

问题描述

这是代码:

typedef char FlagType;

int main()
{
}

int myproc( int )
{
    int FlagType;
}

从https://docs.microsoft.com/en-us/cpp/c-language/typedef-declarations?view=msvc-160复制

据我了解,'typedef char FlagType' 使 'char a' 和 'FlagType a' 没有区别。但我无法理解'int FlagType'。

标签: cmsdn

解决方案


该代码演示了一个病态的示例。不是标准或推荐的用例。

它用于解释当局部变量与 typedef 名称具有相同名称时会发生什么。

Typedef 名称与普通标识符共享名称空间(有关详细信息,请参阅名称空间)。因此,一个程序可以有一个 typedef 名称和一个同名的本地范围标识符。


推荐阅读