用于定义的typedef结构

时间:2013-11-03 21:39:19

标签: c struct typedef

为什么在定义结构类型时使用Node(.. Node {..),如下所示,会产生编译时错误。

typedef struct node Node;

Node{
  int data;
  Node *next;
};

有一个非常基本的概念令我感到困惑,请告知或推荐我使用相关链接。

3 个答案:

答案 0 :(得分:1)

Typedef用于为其他类型提供别名。它不是一个宏,它不能取代使用地点的东西。

正确的定义可能是:

typedef struct node {
  int data;
  struct node* next;
} Node;

答案 1 :(得分:1)

至少,你需要它说

typedef struct node Node;

struct Node{
  int data;
  Node *next;
};

答案 2 :(得分:0)

但是,你可以这样做:

typedef struct {
  int data;
  struct Node *next;
}Node;  

现在,您可以轻松地创建您创建的结构Node的实例:

Node node, *pNode;  

其中nodestruct Node类型的新变量的名称 *pNode是指向它的指针,由:

初始化
  pNode = &node;