Inconnue nom du type avec typedef struct en C

Ce code est écrit dans un fichier nommé Monstre.c. J'ai Monster.h est définie dans les deux mon GameMain.c fichier et mon Monstre.c fichier. À l'intérieur du Monstre.h fichier le code est:

#ifdef MONSTER_H_
#define MONSTER_H_

int Monster(int Selection);
EnemyStats MonsterStats(int Selection);

#endif

J'ai ensuite fait mes typedef struct dans le Monstre.c fichier et créé la fonction de renvoyer les valeurs de la structure.

typedef struct EnemyStats
{
    int EnemyHP;
    int VictoryExp;
    int EnemyLevel;
}
EnemyStats;

EnemyStats MonsterStats(int Selection)
{
    struct EnemyStats value;

    switch(Selection)
    {
        case 1:
            value.EnemyLevel = 1;
            value.VictoryExp = 1;
            value.EnemyHP = 1;
            return value;

        case 2:
            value.EnemyLevel = 1;
            value.VictoryExp = 1;
            value.EnemyHP = 1;
            return value;
        ...
    }

Dans le GameMain.c fichier, j'ai utilisé ce code pour essayer d'accéder à l'information stockée dans la structure:

EnemyStats result;
...
printf("%d", result.EnemyLevel);

Il me donne le message d'erreur quand j'utilise gcc GameMain.c Monstre.c

GameMain.c:40:2: erreur: unknown type name ‘EnemyStats’

GameMain.c:61:25: erreur: demande d'un membre " EnemyHP’ dans quelque chose de pas
une structure ou d'une union

Si j'essaie d'ajouter struct avant EnemyStats résultat, il me donne cette erreur.

GameMain.c: In function ‘main’:

GameMain.c:40:20: erreur: la taille de stockage du "résultat" n'est pas connu

Je ne suis pas sûr de ce que je fais de mal. Toute aide est appréciée.

Pour quelqu'un qui ne le savent pas, je suis en utilisant ... pour dire que je suis ignorer le code qui n'a pas d'incidence sur la situation que je viens de décrire ou le code est redondant

InformationsquelleAutor Arrowkill | 2014-10-10