C 多个函数的未定义引用错误

C 多个函数的未定义引用错误,c,data-structures,C,Data Structures,当运行这个c程序来实现链表操作时,我得到了一些函数的未定义引用错误,比如创建列表的未定义引用,显示的未定义引用,等等。我也在这个网站上读到了这个错误,但我没有得到这些错误的确切含义。我对这些错误一无所知,所以请帮助我理解这些错误 #include < stdio.h > #include < stdlib.h > struct node { int info; struct node * link; }; struct node * create_list(str

当运行这个c程序来实现链表操作时,我得到了一些函数的未定义引用错误,比如创建列表的未定义引用,显示的未定义引用,等等。我也在这个网站上读到了这个错误,但我没有得到这些错误的确切含义。我对这些错误一无所知,所以请帮助我理解这些错误

#include < stdio.h >
#include < stdlib.h >
struct node {
  int info;
  struct node * link;
};
struct node * create_list(struct node * start);
void display(struct node * start);
void count(struct node * start);
void search(struct node * start, int data);
struct node * addatbeg(struct node * start, int data);
struct node * addatend(struct node * start, int data);
struct node * addafter(struct node * start, int data, int item);
struct node * addbefore(struct node * start, int data, int item);
struct node * addatpos(struct node * start, int data, int pos);
struct node * del(struct node * start, int data);
struct node * reverse(struct node * start);
main() {
  struct node * start = NULL;
  int choice, data, item, pos;
  while (1) {
    printf("1.Create list\n");
    printf("2.Display\n");
    printf("3.Count\n");
    printf("4.Search\n");
    printf("5.Add to empty list/Add at beginning\n");
    printf("6.Add at end\n");
    printf("7.Ad after node\n");
    printf("8.Add before node\n");
    printf("9.Add at position\n");
    printf("10.Delete\n");
    printf("11.Reverse\n");
    printf("12.quit\n");
    printf("Enter your choice:\n");
    scanf("%d", & choice);
    switch (choice) {
    case 1:
      start = create_list(start);
      break;
    case 2:
      display(start);
      break;
    case 3:
      count(start);
      break;
    case 4:
      printf("Enter the elements to be searched:");
      scanf("%d", & data);
      search(start, data);
      break;
    case 5:
      printf("Enter the element to be inserted");
      scanf("%d", & data);
      start = addatbeg(start, data);
      break;
    case 6:
      printf("Enter the element to be inserted: ");
      scanf("%d", & data);
      start = addatend(start, data);
      break;
    case 7:
      printf("Enter thee element to be inserted");
      scanf("%d", & data);
      printf("Enter the element after which to insert");
      scanf("%d", & item);
      start = addafter(start, data, item);
      break;
    case 8:
      printf("Enter the element to be inserted: ");
      scanf("%d", & data);
      printf("Enter the element before which to insert");
      scanf("%d", & pos);
      start = addbefore(start, data, item);
      break;
    case 9:
      printf("Enter the element to be inserted");
      scanf("%d", & data);
      printf("Enter the position at which to insert");
      scanf("%d", & data);
      break;
    case 10:
      printf("Enter the elements to be deleted");
      scanf("%d", & data);
      start = del(start, data);
      break;
    case 11:
      start = reverse(start);
      break;
    case 12:
      exit(1);
    default:
      printf("Wrong choice\n");
    }
  }
}
#包括
#包括
结构节点{
国际信息;
结构节点*链接;
};
结构节点*创建_列表(结构节点*开始);
无效显示(结构节点*开始);
无效计数(结构节点*开始);
无效搜索(结构节点*开始,整数数据);
结构节点*addatbeg(结构节点*start,int数据);
结构节点*addatend(结构节点*start,int数据);
结构节点*addafter(结构节点*start,int数据,int项);
结构节点*addbefore(结构节点*start,int数据,int项);
结构节点*addatpos(结构节点*start,int-data,int-pos);
结构节点*del(结构节点*start,int数据);
结构节点*反向(结构节点*开始);
main(){
结构节点*start=NULL;
整数选择、数据、项目、pos;
而(1){
printf(“1.Create list\n”);
printf(“2.显示\n”);
printf(“3.Count\n”);
printf(“4.Search\n”);
printf(“5.添加到空列表/在开头添加\n”);
printf(“6.Add在末尾\n”);
printf(“节点后的7.Ad\n”);
printf(“8.Add-before-node\n”);
printf(“9.Add at position\n”);
printf(“10.删除\n”);
printf(“11.Reverse\n”);
printf(“12.quit\n”);
printf(“输入您的选择:\n”);
scanf(“%d”,选择(&C);
开关(选择){
案例1:
开始=创建列表(开始);
打破
案例2:
显示(启动);
打破
案例3:
计数(开始);
打破
案例4:
printf(“输入要搜索的元素:”);
scanf(“%d”和数据);
搜索(开始,数据);
打破
案例5:
printf(“输入要插入的元素”);
scanf(“%d”和数据);
start=addatbeg(开始,数据);
打破
案例6:
printf(“输入要插入的元素:”);
scanf(“%d”和数据);
开始=添加结束(开始,数据);
打破
案例7:
printf(“输入要插入的元素”);
scanf(“%d”和数据);
printf(“输入要插入的元素”);
scanf(“%d”项和项目);
开始=添加之后(开始、数据、项目);
打破
案例8:
printf(“输入要插入的元素:”);
scanf(“%d”和数据);
printf(“输入要插入的元素”);
scanf(“%d”和“&pos”);
开始=添加之前(开始、数据、项目);
打破
案例9:
printf(“输入要插入的元素”);
scanf(“%d”和数据);
printf(“输入插入位置”);
scanf(“%d”和数据);
打破
案例10:
printf(“输入要删除的元素”);
scanf(“%d”和数据);
开始=删除(开始,数据);
打破
案例11:
开始=反向(开始);
打破
案例12:
出口(1);
违约:
printf(“错误选择\n”);
}
}
}
您的程序已声明函数,但尚未定义它们。您所做的只是告诉它如何调用
create\u list
,而不是告诉它应该如何实现该功能


还有其他文件和这个文件一起吗?很可能这些函数是在另一个文件中定义的,您需要告诉编译器使用该文件的编译输出来定义这些函数。

首先是格式化。编译器可能不需要缩进,但对于阅读代码的人来说,缩进有点重要。其次,如果您遇到任何类型的生成错误,请复制(作为文本,完整且完整,包括任何可能的信息注释)消息,并将其粘贴(不做修改)到您的问题正文中。此外,您没有正确声明。@Someprogrammerdude运行或类似操作并不太困难,特别是对于新用户:-)写评论也需要同样多的时间。请告诉我们哪些行产生了错误。这些是运行时错误还是编译器错误?