0

重複の可能性:
Cでの循環定義

typedef struct{
  node *next;
  node *last;
} doubleLink;

typedef struct{
 doubleLink doubleLink;
 int data;
} node;

上記は、二重リンクを持つオブジェクトを定義する運命の試みです。どちらかのtypedefをもう一方の前に配置すると、「不明な型」のコンパイルエラーが発生します。明らかな手段の1つは、doubleLinkのポインタ型指定子をに変更することvoid * です。それを定義せずに?

これはよくある質問だと思いますが、どのキーワードで見つけられるのかわかりません。

4

1 に答える 1

1

の前方宣言を追加しますnode

struct node;
typedef struct{
  struct node *next;
  struct node *last;
} doubleLink;

ポインタを使用する場合、の定義の前にこの型を完全に定義する必要はありませんdoubleLink

于 2012-10-09T10:38:19.100 に答える