如何在.C文件中声明结构?

时间:2013-03-22 01:56:48

标签: c struct header structure declare

我必须在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,我不断收到错误声明我正在尝试对不是结构或联合的东西执行操作,那么我该怎么做解决这个问题?

2 个答案:

答案 0 :(得分:3)

您的第一个struct后需要一个分号。 要么摆脱你的typedef,要么给它一个名字。

答案 1 :(得分:3)

您的typedef错了。语法是:

typedef [some_type_definition] [type_name];

类型定义是:

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

因此,您需要在其前面添加typedef,并在node后面加上(在分号前)。这样您就可以使用nodestruct node来引用结构。

对于你的列表,你没有命名结构,但是你做了typedef。这意味着您无法将其称为struct list - 您必须仅使用list。如果需要,可以命名结构。