什么是typedef struct node {...} Node; 代表?

gab*_*ece 5 c linked-list

请查看以下代码块:

typedef struct node
{
    int data;
    struct node *next;
} 
Node;
Run Code Online (Sandbox Code Playgroud)

在该代码中,是Node同义struct node,由typedef的定义,或者是node同义为结构?如果是后者,则struct node *next;相当于struct struct *next;

我是不是太复杂了?

Som*_*ude 11

使用时,您typedef可以创建某种类型的别名.

所以是的,Node是别的struct node.


此外,您拥有的代码相当于

struct node
{
    int data;
    struct node *next;
};
typedef struct node Node;
Run Code Online (Sandbox Code Playgroud)

typedef不是结构的定义,它的一部分的部分Node定义.


Har*_*ris 5

Node是同义词struct node。这就是为什么(对于您的示例)而不是使用

struct node* p;
Run Code Online (Sandbox Code Playgroud)

一个可以用

Node* p;
Run Code Online (Sandbox Code Playgroud)