C, “conflicting types for... ” erreur

Avant que je continue, voici le code qui me donne une erreur:

#define numScores 3             //the number of test scores which a student will have

struct btreenode{
int studentID;              //the ID number of the student at the current node

float scores[3];            //the 3 test scores of the student

float average;              //the average of the 3 test scores for the student

struct btreenode *left;     //pointer to left side of the tree
struct btreenode *right;    //pointer to right side of the tree
};

typedef struct btreenode *Node;

J'obtiens l'erreur suivante quand je compile:

btreenode.h:17: error: redefinition of 'struct btreenode'
btreenode.h:28: error: conflicting types for 'Node'
btreenode.h:28: note: previous declaration of 'Node' was here

J'ai un bloc de commentaire en haut de sorte que les numéros de ligne sont éteints, mais

la ligne 17 est la première ligne "struct btreenode{"

la ligne 28 est la dernière ligne "typedef struct btreenode *Node"

Personne ne sait pourquoi j'obtiens ces erreurs?

Tu veux dire struct btreenode *Node;?
Pas d'erreur pour moi. Voir la démo en ligne de compilation réussie.
compilé avec succès pour moi aussi.
peut-être cette erreur se produit si vous avez déclaré la même structure dans le fichier source .c fichier ou d'en-tête inclus deux fois dans la source.pouvez-vous afficher la source et le fichier d'en-tête.
On dirait que vous êtes, y compris le fichier avec ces définitions plus d'une fois. Utiliser l'en-tête des gardes.

OriginalL'auteur jlzizmor | 2014-02-12