看到这个结构
typedef struct Node{
void *data;
int pos;
struct Node *prev;
struct Node *next;
}*lptr;
我想知道为什么Node
is*lptr
和 not的 typedef lptr
。指针有什么区别?
看到这个结构
typedef struct Node{
void *data;
int pos;
struct Node *prev;
struct Node *next;
}*lptr;
我想知道为什么Node
is*lptr
和 not的 typedef lptr
。指针有什么区别?
虽然通常有两个typedef
s - 一个用于struct
避免标记,一个用于struct
指针以避免星号,像这样
typedef struct Node{
void *data;
int pos;
struct Node *prev;
struct Node *next;
} Node;
typedef Node* lptr;
如果作者想避免在lptr
or之后写星号Node
,他们当然typedef
可以指向struct Node
.
typedef 用于指针类型。
lptr
是类型struct Node*
Because the definition (the typedef) is to a pointer type. Removing it makes lptr of type Node, * makes it a pointer to a Node.