为什么指针在typedef中?

时间:2013-11-13 14:45:44

标签: c

看到这个结构

typedef struct Node{
    void *data;
    int pos;
    struct Node *prev;
    struct Node *next;
}*lptr;

我想知道为什么Node的typedef是*lptr而不是lptr。 指针有什么不同?

3 个答案:

答案 0 :(得分:3)

虽然通常有两个typedef s - 一个用于struct以避免标记,一个用于struct指针以避免使用星号,如此

typedef struct Node{
    void *data;
    int pos;
    struct Node *prev;
    struct Node *next;
} Node;
typedef Node* lptr;

如果作者想避免在lptrNode之后写一个星号,他们当然可以typedef指向struct Node

答案 1 :(得分:2)

typedef用于指针类型。

lptrstruct Node*

类型

答案 2 :(得分:1)

因为定义(typedef)是指针类型。删除它会使lptr类型为Node,*使它成为节点的指针