0

Node(..Node{..) を以下のように使用すると、構造体型を定義するとコンパイル時にエラーが発生するのはなぜですか。

typedef struct node Node;

Node{
  int data;
  Node *next;
};

私を混乱させる非常に基本的な概念があります。アドバイスするか、関連するリンクを参照してください。

4

3 に答える 3

1

Typedef は、別の型にエイリアスを提供するために使用されます。マクロではありませんので、使用する場所で代用するものではありません。

正しい定義は次のようになります。

typedef struct node {
  int data;
  struct node* next;
} Node;
于 2013-11-03T21:53:13.157 に答える
0

ただし、これを行うことができます:

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

これで、作成した構造体のインスタンスを次の方法で簡単に作成できますNode

Node node, *pNode;  

nodetype の新しい変数の名前はどこにありますかstruct Node
そして*pNode、同じへのポインタであり、次によって初期化されます。

  pNode = &node;
于 2013-11-03T22:45:41.273 に答える