我正在为学校制作一份链表,我收到了大量的错误。我确信我的代码可能只有一个问题,但我似乎无法找到它。我已经注释掉了我的大部分代码,所以我不必在这里粘贴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;
};
答案 0 :(得分:3)
如果未在头文件中声明它们,则需要转发声明结构。
因此,List.h
需要struct ListElmt
的前瞻性声明,而ListElmt.h
需要struct ListData
的前瞻声明。
此外,在C中,您必须在struct
之前使用ListData
,在ListElmt
中使用ListElmt.h
,因为除非您使用显式{{},否则结构名称不会被视为类型名称1}}。
答案 1 :(得分:2)
你错过了struct关键字
struct ListElmt {
struct ListData *data;
struct ListElmt *next;
struct ListElmt *prev;
};