我正在尝试构建一个链接列表,但我一开始就陷入困境 - 我是一个完全的初学者。如何定义结构?
以下是我收到的错误消息:
8 8 C:\Users\user\Desktop\list_funcs.c [错误] 重新定义“struct data_node”
4 0 C:\Users\user\Desktop\list_funcs.c 在 list_funcs.c 包含的文件中
3 8 C:\Users\user\Desktop\list_funcs.h 【注】最初定义在这里
28 C:\Users\user\Desktop\Makefile.win 目标“list_funcs.o”配方失败
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "list_funcs.h"
struct data_node {
char name [25];
int data;
struct data_node *next;
};
这是头文件包含的内容
#define STRINGMAX 25
struct data_node {
char name [STRINGMAX];
int data;
struct data_node *next;
};
struct data_node * insert (struct data_node **, int, char *);
最佳答案
您的 .c
文件包含 struct data_node
的定义,但您的头文件(.c
文件包含)还包含struct data_node
的定义。从 .c
文件中删除定义,应该没问题。
关于C链表 "redefinition of structure",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22921179/