问题遇到的现象和发生背景
我在linklist.c 中实现了一些单链表的基础操作,但是在linklist_main.c中定义主方法想调用时却发生了以下错误,
用代码块功能插入代码,请勿粘贴截图
linklist_main.c
#include"linklist.c"
int main()
{
LinkNode* h=NULL;
InitList(h);
ElemType a[5] = { 'a','b','c','d','e' };
CreatList(h, a, 5);
DispList(h);
}
linklist.c
#include<stdio.h>
#include<malloc.h>
#include<stdbool.h>
typedef char ElemType;
typedef struct LNode
{
ElemType data;
struct LNode* next;
}LinkNode;
void InitList(LinkNode* L)
{
L = (LinkNode*)malloc(sizeof(LinkNode));
L ->next = NULL;
}
void CreatList(LinkNode* L, ElemType a[], int n)
{
LinkNode* s, * r;
L = (LinkNode*)malloc(sizeof(LinkNode));
L->next = NULL;
r = L;
for (int i = 0; i < n; i++)
{
s = (LinkNode*)malloc(sizeof(LinkNode));
s->data = a[i];
r->next = s;
r = s;
}
r->next = NULL;
}
void DispList(LinkNode* L)
{
LinkNode* p = L->next;
while (p != NULL)
{
printf("%d", p->data);
p = p->next;
}
printf("\n");
}
int getListLength(LinkNode* L)
{
int i = 0;
LinkNode* p = L;
while (p->next != NULL)
{
i++;
p = p->next;
}
return i;
}
bool ListIsEmpty(LinkNode* L)
{
return(L->next == NULL);
}
ElemType GetItem(LinkNode* L, int i)
{
int j = 0;
LinkNode* p = L;
while (i<0 || i> getListLength(L))
{
printf("输入了错误的数字,请重新输入");
scanf_s("%d", &i);
}
while (j<i&&p != NULL)
{
j++;
p = p->next;
}
return p->data;
}
int LocateElem(LinkNode* L, ElemType e)
{
int i = 1;
LinkNode* p = L->next;
while (p != NULL&&p->data != e)
{
p = p->next;
i++;
}
if (p == NULL)
return 0;
else
return i;
}
bool ListInsert(LinkNode* L, int i, ElemType e)
{
int j = 0;
LinkNode* p = L, * s;
if (i<= 0)return false;
while (j<i - 1 && p != NULL)
{
j++;
p = p->next;
}
if (p == NULL)
return false;
else
s = (LinkNode*)malloc(sizeof(LinkNode));
s->data = e;
s->next = p->next;
p->next = s;
return true;
}
bool Listdelete(LinkNode* L, int i, ElemType e)
{
int j = 0;
LinkNode* p = L, * q;
if (i<= 0)return false;
while (j<i - 1 && p != NULL)
{
j++;
p = p->next;
}
if (p == NULL)return false;
else
{
q = p->next;
if (q == NULL)
return false;
e = q->data;
p->next = q->next;
free(q);
return true;
}
}
运行结果及报错内容
错误 LNK2005 CreatList 已经在 linklist.obj 中定义
请问是哪里出错了?