为什么typedef相同的标识符

why typedef the same identifier

对同一个标识符进行类型定义是否有任何好处,如下所示:

typedef struct Struct_name
{
  //something....
} Struct_name;

我主要通过 struct

接触过这种风格

C++ 已经允许您将 struct Struct_name 称为 Struct_name。但它有一个特殊的规则,允许这个别名通过 typedef 向 Struct_name 声明相同的标识符。

原因是 C 兼容性。在 C 语言中,只有 typedef 存在时,struct Struct_name 才能被称为 Struct_name。因此,您所看到的允许将此结构放入 C 和 C++ 代码都包含的 header 中。因此,让两个代码库都将类型引用为 struct Struct_nameStruct_name.