关于c ++:为什么typedef相同的标识符

why typedef the same identifier

本问题已经有最佳答案,请猛点这里访问。

在typedef中是否有如下所示的相同标识符的好处:

1
2
3
4
typedef struct Struct_name
{
  //something....
} Struct_name;

我发现这种风格主要是和struct一起出现的。


C++已经允许你引用EDCOX1,0作为EDCOX1,1。但是它有一个特殊的规则,允许这个别名通过typedef向Struct_name声明相同的标识符。

原因是C兼容。在C语言中,当存在typedef时,struct Struct_name只能称为Struct_name。因此,您看到的允许将该结构放入包含C和C++代码的报头中。因此,让这两个代码基都将类型引用为struct Struct_nameStruct_name