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 文件中可用?我已经 #included 头文件,但是当我尝试调用例如 myList.head 时,我不断收到错误消息,指出我正在尝试对不是结构或联合的东西执行操作,所以我该怎么做解决这个问题?

4

2 回答 2

3

typedef错了。语法是:

typedef [some_type_definition] [type_name];

类型定义是这样的:

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

所以你需要给它加上前缀typedef和后缀node(在分号之前)。这将允许您使用node或来引用结构struct node

对于您的列表,您没有命名结构,但您做到typedef了。这意味着您不能将其称为struct list- 您必须使用 just list。如果需要,您可以命名该结构。

于 2013-03-22T02:02:58.340 回答
3

您需要在第一个struct. 要么摆脱你的typedef,要么给它一个名字。

于 2013-03-22T01:58:08.880 回答