我必须在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 Header文件,但是当我尝试调用时,例如myList.head,我不断收到错误声明我正在尝试对不是结构或联合的东西执行操作,那么我该怎么做解决这个问题?
答案 0 :(得分:3)
您的第一个struct
后需要一个分号。
要么摆脱你的typedef
,要么给它一个名字。
答案 1 :(得分:3)
您的typedef
错了。语法是:
typedef [some_type_definition] [type_name];
类型定义是:
struct node {
char *string;
struct node* next;
};
因此,您需要在其前面添加typedef
,并在node
后面加上(在分号前)。这样您就可以使用node
或struct node
来引用结构。
对于你的列表,你没有命名结构,但是你做了typedef
。这意味着您无法将其称为struct list
- 您必须仅使用list
。如果需要,可以命名结构。