为什么typedef是相同的标识符

时间:2019-01-07 09:19:11

标签: c++ struct typedef

按如下所示对相同的标识符进行类型定义是否有好处:

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

我主要使用struct

1 个答案:

答案 0 :(得分:4)

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

原因是C兼容性。在C中,struct Struct_name仅在存在Struct_name时可以称为typedef。因此,您所看到的允许将这种结构放在C和C ++代码都包含的标头中。因此,让两个代码库都将类型都称为struct Struct_nameStruct_name