我们如何使用两个不同的指针键入相同的结构? term_t有什么作用?

时间:2013-12-08 07:06:13

标签: c pointers struct typedef

struct term{ 
    double coef; 
    unsigned deg; 
    struct term * next;
}term_t;
typedef struct term * Term; 
typedef struct term * Poly;

我必须将此代码用于一类多项式。这段代码由我的教授提供,但我不明白为什么会这样。

1 个答案:

答案 0 :(得分:2)

typedef struct term
{ 
    double coef; 
    unsigned deg; 
    struct term * next;
} term_t;

这是同时将struct termtypedef定义为term_tterm_t的作用类似struct term的别名,因此您可以通过简单地包含此行来创建此类型的结构变量...

term_t termVar;

...而不是必须使用这一行...

struct term termVar;

typedef struct term * Term; 
typedef struct term * Poly;

这些行正在为struct term *创建别名。现在你可以使用......

这样的行
Term pTermVar;

......而不是......

struct term *pTermVar;

他们也可能typedef像这样:

typedef term_t * Term;
typedef Term Poly;