Tengo unas estructuras (struct player y struct ball) definidas en un fichero de cabecera llamado "definitions.h". El programa quiero dividirlo en varios ficheros, para que cada fichero se tenga las funciones que se encargan de hacer algo similar, por ejemplo, uno con funciones que usan las SDL (sdl_functions.c) y otro con las funciones que controlan el juego (game.c). Las que controlan el juego se encargan de poner en marcha el juego (poner a los jugadores, moverlos por la pantalla), y las funciones de las SDL se encargan de mostrarlo por la pantalla y reproducir los sonidos y eso.
El problema es que algunas de las funciones que usan las SDL y las funciones que controlan el juego utilizan las mismas estructuras (unas para mostrar a los jugadores por la pantalla y las otras para controlarlos).
Entonces, si incluyo el fichero "definitions.h" en cada uno de los fichero fuente sdl_functions.c y game.c, al compilar con el Dev-C++ da error de que ha habido una declaración previa de la estructura player y la estructura ball.
Si meto todas las funciones en un solo fichero fuente, e incluyo en el de cabecera definitions.h, si que funciona, pero se queda un fichero enorme, y me gustaría tenerlo separado.
¿Qué puedo hacer para que no de este error? O sea, cambiar alguna opción o algo para que pueda compilar bien.
PD: Si genero el código objeto de cada fichero (el sdl_functions.c y el game.c) por separado y luego los enlazo si que funciona correctamente, pero en este caso lo tengo que hacer todo a mano y es un poco coñazo
PPD: Si no contesto es que estoy en el pueblo sin internet, ya responderé cuando vuelva