Dunque, io ho un progetto fatto grosso modo così:
- main.c, che include primo.h, secondo.h, terzo.h, quarto.h;
- primo/secondo/terzo/quarto.c (e relativi fle h) che fanno tutti cose diverse, tutte chiamate dal main;
- utils.c/h, che contiene un paio di funzioni comuni e tutti i tipi usati (6 struct).
Ora, quando compilo mi vengono dati una valanga di conflicting types, dato che in pratica il main verrebbe ad includere, seppur in modo indiretto, 4 volte utils.h; non posso togliere da nessuno dei vari primo/secondo etc tale inclusione, dato che già nei prototipi delle funzioni implementate nei rispettivi file c vengono richiamate le struct i utils.h, come faccio? L'unica soluzione che mi è venuta in mente è di includere a catena: primo.h include utils.h, secondo include primo etc, main include solo quarto; ma il comportamento del gcc non è un po' poco logico? Possibile che non capisca che le dichiarazioni di tipi sono le stesse (dato che il file utils.h è uno ed uno solo)? Forse questo forum non è il maggiormente adatto ad una questione prettamente di programmazione, ma se qualcuno sa qualcosa PARLI!!!


