C链表“重新定义结构”

时间:2014-04-07 19:20:32

标签: c list linked-list structure redefinition

我正在尝试建立一个链接列表,但我一开始就陷入困境 - 我是一个完全的初学者。我如何定义结构?

以下是我收到的错误消息:

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 *);

2 个答案:

答案 0 :(得分:4)

您的.c文件包含struct data_node的定义,但您的头文件(.c文件包含的内容)也包含struct data_node的定义。从.c文件中删除定义,你应该没问题。

答案 1 :(得分:0)

错误本身表示“重新定义'struct'”。你已经在头文件中声明了struct data_node两次..另一个在.c文件中。你可以放弃其中一个。如果要使用头文件,请删除.c文件中的文件。