关于c ++:为什么在struct和union上使用typedef?

Why use typedef on struct and union?

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

我想知道为什么要在类型结构和联合上使用说明符typedef,因为它们在某种程度上不是用来定义您自己的类型吗?

谢谢!


编辑在C++中不需要读取标准"TyPulf",这可能是为了向后兼容。此外,使用"TyPulf",代码将在C和C++编译器中编译而不更改,或者"如果定义",那么它可能是遗留代码支持的东西。

我认为人们这样做是为了节省打字时间!毕竟我们很懒。因此,而不是:

1
2
3
4
5
6
7
struct SomeStruct
{
  // some data
};

struct SomeStruct first_instance;
struct SomeStruct second_instance;

你应该用这个来代替:

1
2
3
4
5
6
7
typedef struct typedefSomeStruct
{
  // some data
} SomeStruct;

SomeStruct first_instance;
SomeStruct second_instance;

因此,当您声明该类型的实例时,不需要为"struct"关键字加前缀。