为什么我把函数声明放在前面就会报错
用的是Dev-C++
报错说 [Error] expected ';', ',' or ')' before '{' token
直接把函数定义放在前面就运行没问题QAQ
有人帮忙解决一下疑问吗(悲)
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#define Maxsize 10
typedef struct
{
int* data;
int length;
int maxsize;
}SeqList;
void InitList(SeqList* L);
void DestroyList(SeqList* L;
int GetElem(SeqList L,int i);
int LocateElem(SeqList L,int e);
bool ListInsert(SeqList* L,int i,int e);
bool ListDelete(SeqList* L,int i,int* e);
void IncreaseSize(SeqList* L,int len);
bool Empty(SeqList L);
void PrintList(SeqList);
int Length(SeqList L);
int main()
{
return 0;
}
void InitList(SeqList* L)
{
L->data=(int*)malloc(sizeof(int)*Maxsize);
L->length=0;
L->maxsize=Maxsize;
}
void DestroyList(SeqList* L)
{
free(L->data);
L->data=NULL;
L->length=0;
L->maxsize=0;
}
int GetElem(SeqList L,int i)
{
if(i<1||i>L.length)
return 0;
return L.data[i-1];
}
int LocateElem(SeqList L,int e)
{
for(int i=0;i<L.length;i++)
{
if(L.data[i]==e)
return i+1;
}
return 0;
}
bool ListInsert(SeqList* L,int i,int e)
{
if(i<1||i<L->length+1)
return false;
if(L->length>=L->maxsize)
return false;
for(int j=L->length;j>=i;j--)
L->data[j]=L->data[j-1];
L->data[i-1]=e;
L->length++;
return true;
}
bool ListDelete(SeqList* L,int i,int* e)
{
if(i<1||i>L->length)
return false;
*e=L->data[i-1];
for(int j=i;j<L->length;j++)
L->data[j-1]=L->data[j];
L->length--;
return true;
}
void IncreaseSize(SeqList* L,int len)
{
int* p=L->data;
L->data=(int*)malloc(sizeof(int)*(len+L->maxsize));
for(int i=0;i<L->length;i++)
L->data[i]=p[i];
L->maxsize+=len;
free(p);
}
bool Empty(SeqList L)
{
return (L.length==0);
}
void PrintList(SeqList L)
{
for(int i=0;i<L.length;i++)
printf("L.data[%d]=%d\n",i,L.data[i]);
}
int Length(SeqList L)
{
return L.length;
}