-4

我正在为学校制作一个链接列表,但我遇到了很多错误。我确定我的代码可能只有一件事有问题,但我似乎找不到它。我已经注释掉了我的大部分代码,所以我不必在这里粘贴 200 行代码,而且主要错误仍然出现,尽管次数少了很多。

错误是:

error C2143: syntax error : missing '{' before '*'    

在我注释掉我的代码之前,我可能会沿着这些指南弹出 50-75 个错误,但是这段代码仍然存在一些错误。任何帮助将非常感激。

//main.c
#define BUFFER_SIZE 1000
#include<stdio.h>
#include<stdlib.h>
#include"ListElmt.h"
#include"List.h"
#include"ListData.h"

int main(int argc, char *argv[]){
}

//List.c
#include<stdlib.h>
#include"List.h"
#include"ListElmt.h"
#include"ListData.h"

//List.h
struct List{
int size;
struct ListElmt *head;
struct ListElmt *tail;
};

//ListData.h
struct ListData {
int hour;
int min;
double temp;
int AC;
};

//ListElmt.h
struct ListElmt {
ListData *data;
ListElmt *next;
ListElmt *prev;
};
4

2 回答 2

3

如果头文件中未声明结构,则需要转发声明结构。

因此,List.h需要 的前向声明struct ListElmt,并且ListElmt.h需要 的前向声明struct ListData

此外,在 C 中,您必须使用structbeforeListDataListElmtinListElmt.h因为结构名称不被视为类型名称,除非您使用显式typedef.

于 2012-10-07T05:54:26.277 回答
2

你错过了 struct 关键字

struct ListElmt {
struct ListData *data;
struct ListElmt *next;
struct ListElmt *prev;
};
于 2012-10-07T05:54:23.023 回答