1

リンクリストをCで実装する必要があり、プロジェクトの仕様に従って、次の構造をヘッダーファイルに作成する必要があります。

typedef struct node {
char *string;
struct node* next;  
} 


typedef struct {
node *head;  /* could have been struct node* as well */
node *tail;
} list;

これらを.Cファイルで利用できるようにするにはどうすればよいですか?すでにヘッダーファイルを#includeしましたが、たとえばmyList.headを呼び出そうとすると、構造体または共用体ではないものに対してアクションを実行しようとしているというエラーが発生し続けます。どうすればよいですか。これを修正しますか?

4

2 に答える 2

3

最初の の後にセミコロンが必要ですstruct。そして、あなたの を取り除くかtypedef、それに名前を付けてください。

于 2013-03-22T01:58:08.880 に答える
3

あなたtypedefは間違っています。構文は次のとおりです。

typedef [some_type_definition] [type_name];

型定義は次のとおりです。

struct node {
    char *string;
    struct node* next;
};

そのため、接頭辞typedefと接尾辞node(セミコロンの前) を付ける必要があります。nodeこれにより、またはを使用して構造体を参照できますstruct node

リストでは、構造体に名前を付けませんでしたが、名前を付けましたtypedef。つまり、次のように参照することはできません。just をstruct list使用する必要がありますlist。必要に応じて構造体に名前を付けることができます。

于 2013-03-22T02:02:58.340 に答える