Node(..Node{..) を以下のように使用すると、構造体型を定義するとコンパイル時にエラーが発生するのはなぜですか。
typedef struct node Node;
Node{
int data;
Node *next;
};
私を混乱させる非常に基本的な概念があります。アドバイスするか、関連するリンクを参照してください。
Typedef は、別の型にエイリアスを提供するために使用されます。マクロではありませんので、使用する場所で代用するものではありません。
正しい定義は次のようになります。
typedef struct node {
int data;
struct node* next;
} Node;
ただし、これを行うことができます:
typedef struct {
int data;
struct Node *next;
}Node;
これで、作成した構造体のインスタンスを次の方法で簡単に作成できますNode
。
Node node, *pNode;
node
type の新しい変数の名前はどこにありますかstruct Node
。
そして*pNode
、同じへのポインタであり、次によって初期化されます。
pNode = &node;