缺少'('之前'*'

时间:2012-10-07 05:51:08

标签: c

我正在为学校制作一份链表,我收到了大量的错误。我确信我的代码可能只有一个问题,但我似乎无法找到它。我已经注释掉了我的大部分代码,所以我不必在这里粘贴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;
};

2 个答案:

答案 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;
};