为什么结构名称应该有typedef?

Jay*_*Jay 9 c struct typedef

我已经看到源代码总是有一个结构的typedef并使用相同的地方而不是直接使用结构名称作为"struct sname"等?

这背后的原因是什么?这样做有什么好处吗?

N 1*_*1.1 10

Box b;比阅读更容易阅读struct boxtype b;

typedef struct _entry{
   char *name;
   int id;
} Entry, *EntryP;
Run Code Online (Sandbox Code Playgroud)

优点:
在上述typedef,既Entry&EntryP从定义分开struct _entry.
因此,EntryP firstentry可以用来代替struct _entry *firstentry并且在解析时更简单一些.

注意:它不会像结构名称应该typedef独立非执行董事,但显然它更容易阅读.此外,Entry *vs的使用EntryP完全取决于用户.

  • 我一般反对像`EntryP`这样的typedef.C已经有一个非常好的方法来声明你想要的指针:`Entry*firstentry`. (3认同)