我正在尝试建立一个链接列表,但我一开始就陷入困境 - 我是一个完全的初学者。我如何定义结构?
以下是我收到的错误消息:
8 8 C:\Users\user\Desktop\list_funcs.c [Error] redefinition of 'struct data_node'
4 0 C:\Users\user\Desktop\list_funcs.c In file included from list_funcs.c
3 8 C:\Users\user\Desktop\list_funcs.h [Note] originally defined here
28 C:\Users\user\Desktop\Makefile.win recipe for target 'list_funcs.o' failed
#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 *);
答案 0 :(得分:4)
您的.c
文件包含struct data_node
的定义,但您的头文件(.c
文件包含的内容)也包含struct data_node
的定义。从.c
文件中删除定义,你应该没问题。
答案 1 :(得分:0)
错误本身表示“重新定义'struct'”。你已经在头文件中声明了struct data_node两次..另一个在.c文件中。你可以放弃其中一个。如果要使用头文件,请删除.c文件中的文件。