c语言 自定义一个函数为什么显示warning C4013: 'Free_SL' undefined; assuming extern returning int

#include<stdio.h>
#include <stdlib.h>
//Status 是函数类型,其值是函数结果状态代码

#define MAXSIZE 1000
typedef struct
{
char data;
int cur;
} component,SLinkList[MAXSIZE];

int LocateElem_SL(SLinkList S,char e)
{
//在静态单链表线性表L中查找第1个值为e的元素。
//若没找到,则返回它在L中的位序,否则返回0。
int i;
i = S[0].cur;
while( i && S[i].data != e)
i= S[i].cur;
return i;
}

void InitSpace_SL(SLinkList &space)
{
//将一维数组space中各个分量连成一个备用链表,space[0].cur为头指针,
//“0”表示空指针
for(int i = 0; i < MAXSIZE -1; ++i)
space[i].cur = i+1;
space[MAXSIZE - 1].cur = 0;
}

int Malloc_SL(SLinkList &space)
{
//若备用空间链表非空,则返回分配的节点的下标,否则返回0;
int i = space[0].cur;
if (space[0].cur)
space[0].cur = space[i].cur;
return i;
}

void Free_SL(SLinkList &space, int k)
{
//将下标为k的空闲结点回收到备用链表
space[k].cur = space[0].cur;
space[0].cur = k;
}

void main()
{
//依次输入集合A和B的元素,在一维数组space中建立表示集合(A-B)∪(B-A)
//的静态链表,S为其头指针。假设备用空间足够大,space[0].cur 为其头指针。
int m,n,r,j,i=0,M,N;
SLinkList space;
int S;
InitSpace_SL(space); //初始化备用空间
S = Malloc_SL(space); //生成S的头结点
r = S; //r指向S的当前最后结点
printf("请输入A和B的元素个数"); //输入A和B的元素个数
scanf("%d %d",&m,&n);
printf("请输入A的元素值");
for( j = 1;j <= m; j++) //建立集合A的链表
{
i = Malloc_SL(space); //分配结点
scanf("%c",&space[i].data); //输入A的元素值
space[r].cur = i; //插入到表尾
r=i;
}
space[r].cur = 0; //尾结点的指针为空
printf("请输入B的元素值");
for (j=1; j <= n; ++j) //依次输入B的元素,若不在当前表中,则插入,否则
//删除
{
int k,p; //输入B的元素值
char b;
scanf("%c",&b);
p = S; k = space[S].cur; //k指向集合A中的第一个结点
while(k != space[r].cur && space[k].data != b)//在当前表中查找
{
p = k;
k = space[k].cur;
}
if(k ==space[r].cur) //当前表中不存在该元素,插入在r所指向结点之后,
//且r的位置不变
{
i= Malloc_SL(space);
space[i].data = b;
space[i].cur = space[r].cur;
space[r].cur = i;
}
else
{ //该元素已在表中,删除之
space[p].cur = space[k].cur;
Free_SL(space,k);
if (r ==k)
r = p; //若删除的是r所指结点,则需修改尾指针
}//else
}//for

int z=S; //S为space静态表的头指针
printf(" %c",space[space[S].cur].data);
while(space[z].cur != 0)
{
printf(" %c",space[space[z].cur].data);
z++;
}
}

没有啊,使用VC6编译没有出现这个问题。而且你那个Free_SL函数有声明是void的。
倒是M,N没有被使用,有一个warning追问

在你那上边运行没有错误吗,为什么我这运行好多错误

追答

编译没有错误。运行我倒没有运行。
如果运行结果不对,你可以使用断点调试的方式调试一下。

追问

能加个qq吗,我想发一下截图,我这为什么好多错误

追答

我私信你

温馨提示:答案为网友推荐,仅供参考
相似回答