2014-04-07 41 views
1

我想建立一个链表,但我一开始就被卡住了 - 我是一个完整的初学者。我如何定义结构?C链表“结构的重新定义”

下面是错误消息我得到:

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

回答

4

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

0

错误本身说“重新定义'结构'”。你已经在头文件中声明了struct data_node两次..而在.c文件中声明了另一个。你可以放下其中一个。如果你想使用头文件,然后把它放在.c文件中。