这个错误通常是由于程序中定义了重复的函数而引起的。可能是函数的参数或返回类型不匹配。例如,在链表的实现中,我们定义了一个名为'addTail”的函数,在某个地方我们又定义了一个参数或返回类型不同但名称相同的函数,导致冲突。
为了解决这个问题,我们需要仔细检查程序中所有函数的定义,确保它们的名称、参数和返回类型都是唯一的,没有重复的定义。同时,我们可以使用头文件来避免重复定义,将所有函数的声明存储在头文件中,在需要使用这些函数的文件中包含相应的头文件即可。
以下是头文件LinkList.h的示例代码:
#ifndef LINKLIST_H
#define LINKLIST_H
// 数据结构定义
typedef struct Node {
int data;
struct Node* next;
} Node;
// 函数声明
Node* createList(void);
void displayList(Node* head);
void addTail(Node** headRef, int data);
void deleteNode(Node** headRef, int data);
void freeList(Node** headRef);
#endif
在其他文件中需要使用链表操作时,只需要包含LinkList.h头文件即可:
#include "LinkList.h"
int main() {
Node* head = createList();
addTail(&head, 1);
addTail(&head, 2);
displayList(head);
return 0;
}