Procesar de un archivo de encabezado en otro archivo de encabezado

Pasaré por esto realmente bastante tiempo y todavía no veo dónde podría estar el problema.

Tengamos el archivo de cabecera Player.h

#ifndef PLAYER_H_ #define PLAYER_H_ typedef struct player { char *name; int gameId; int socketfd; int points; int state; }player_struct; #endif /* PLAYER_H_ */ 

Y vamos a tener el segundo archivo de cabecera Game.h

 #ifndef GAME_H_ #define GAME_H_ #include "Player.h" #define NUMBEROFPLAYERS 2 typedef struct game { //Here }game_struct; #endif /* GAME_H_ */ 

El propósito de mi typedef es tener un tipo player_struct usando algo como esto:

Es el archivo fuente Player.c – esto funciona.

 #include "Player.h" player_struct *create_player { player_struct *player; //body malloc .... return player; } 

Uso el editor de Eclipse para C y C ++, tengo un proyecto de C comstackdo con Linux GCC.

¿Por qué no puedo usar el tipo player_struct en el archivo de cabecera game.h de la misma manera que en Player.C, incluso si he incluido el archivo de cabecera Player.h?

en el lugar en el archivo de cabecera game.h comented // AQUÍ quiero usar

 player_struct *players[NUMBEROFPLAYERS]; 

pero escribe que no se pudo resolver el tipo de dama …

El tipo ‘player_struct’ no se pudo resolver

Probé muchas formas de escribir la estructura y typedef pero nada ayudó. Realmente no entiendo nada de ideas? Gracias.

EDITADO: Me pidieron que pusiera allí todo mi código, así que: el problema está en el encabezado Game.h cuando uso el tipo player_struct (es la primera fila).
primero

  /* Player.h */ #ifndef PLAYER_H_ #define PLAYER_H_ typedef struct player{ char *name; // player name int gameId; // what game int points; //how money points int socketfd; //socket descriptor of player int state; } player_struct; //create player player_struct *create_player(); //delete player void delete_player(player_struct *player); #endif /* PLAYER_H_ */ 

segundo

  /* Game.h */ #ifndef GAME_H_ #define GAME_H_ #include "Player.h" //#include "Card.h" #define PLAYERSLEN 2 // number of players #define GAMESLEN 10 //number of games #define CARDSLEN 64 //cards in one game typedef struct game{ player_struct *players[PLAYERSLEN];//here is the problem //card_struct *cards[CARDSLEN]; //her will be same problem int active; int playerOnTurn; char *gameName; int gameId; }games_struct; //typedef struct game game_struct; //extern games_struct *games_array[GAMESLEN]; void init_game(games_struct *game); void run_game(games_struct *game); void *end_game(games_struct *game); #endif /* GAME_H_ */ 

Intenta definirlos sin usar typedef.