2014-04-07 44 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文件中。