网上查找说的是函数没有放在main 函数之前,但是我都没有创建main函数,并且就算在函数最后添加main函数,错误也还是这样的。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define H "-----------------------"
typedef struct Person
{
char name[20];
char addr[20];
char tele[20];
char qq[20];
struct Person *next;
}PERSON;
PERSON *head;
void lcreate()
{
PERSON *pb;
char ch;
do
{
pb = malloc(sizeof(PERSON));
if (!pb)
{
printf("cannot have house!");
getchar();
exit(1);
}
printf("%s\nPlease put in name:", H);
gets_s(pb->name,20);
printf("%s\nPlease put in address:",H);
gets_s(pb->addr,20);
printf("%s\nPlease put in phone:",H);
gets_s(pb->tele,20);
printf("%s\nPlease put in QQ:",H);
gets_s(pb->qq,20);
linsert(pb);
printf("yes or no put in next informantion!(y/n)");
ch = getchar();
fflush(stdin);
} while (ch == 'y' || ch == 'Y');
}
void DeleteList(PERSON *head)
{
PERSON *DElem, *next;
DElem = head;
while (DElem)
{
next = DElem->next;
free(DElem);
DElem = next;
}
}
void linsert(PERSON *p)
{
PERSON *pa, *pb;
pb = head;
if (!head)
{
head = p;
}
else
{
while (pb)
{
pa = pb;
pb = pb->next;
}
pa->next = p;
}
p->next = NULL;
}
void ldel(char *name)
{
PERSON *pa, *pb;
if (!head)
{
printf("linst is null!\n");
getchar();
exit(1);
}
pb = head;
while (strcmp(pb->name, name) && pb->next)
{
pa = pb;
pb = pb->next;
}
if (!strcmp(pb->name, name))
{
if (pb = head)
{
head = pb->next;
}
else
{
pa->next = pb->next;
}
free(pb);
}
}
1>------ 已启动生成: 项目: Project7, 配置: Debug Win32 ------
1>源.c
1>d:\c++暂存文件\project7\project7\源.c(41): warning C4013: “linsert”未定义;假设外部返回 int
1>d:\c++暂存文件\project7\project7\源.c(60): error C2371: “linsert”: 重定义;不同的基类型
1>已完成生成项目“Project7.vcxproj”的操作 - 失败。
===== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ======