[C] Problème d'inclusion de type...

Problème d'inclusion de type... [C] - C - Programmation

Marsh Posté le 21-05-2006 à 10:21:54    

:hello: à tous
 
J'ai un petit problème dans l'inclusion de types abstraits de données... Je m'explique :
 
Mon but est d'implémenter un certain nombre de types abstraits de données et leurs fonctions de base en vue d'une utilisation dans un programme final, mais tout en gardant les structures confidentielles, c'est-à-dire que je souhaite uniquement mettre dans mes headers le typedef et les déclarations des fonctions de base, et laisser le struct dans le .c qui serait uniquement fourni en .o avec son header.
 
Je crée donc mon 1er type appelé "histo" avec dans histo.c le struct et les fonctions de base, et dans histo.c, le typedef et les déclarations de fonction.
Je compile le .o et tout se passe bien pour le moment.
 
Je crée ensuite mon 2e type appelé "tab_histo" qui réutilise mon type "histo" (idem qu'avant pour le tab_histo.c et tab_histo.h où je fais un include de histo.h).
Mais là, impossible de compiler le .o sans erreur puisqu'il ne sait pas ce qu'est le type histo, gcc ne pouvant pas compiler tab_histo.c en .o tout en "regardant" histo.o.
La seule solution que j'ai trouvé pour le moment, c'est de transférer ma structure à l'origine du type histo dans histo.h, ce qui ne me plaît pas du tout.
 
Y-a-t-il une autre solution qui me permettrait de garder toutes les structures cachées ? :??:
 
Merci par avance :jap:


---------------
LaPointe - USB OTG File Manager for Nexus - Version Trial - Simple Music Player - Version gratuite
Reply

Marsh Posté le 21-05-2006 à 10:21:54   

Reply

Marsh Posté le 21-05-2006 à 10:22:38    

t'aurais pas un peu de code (minimaliste) ?

Reply

Marsh Posté le 21-05-2006 à 10:38:38    

LaPointe a écrit :

:hello: à tous
 
J'ai un petit problème dans l'inclusion de types abstraits de données... Je m'explique :
 
Mon but est d'implémenter un certain nombre de types abstraits de données et leurs fonctions de base en vue d'une utilisation dans un programme final, mais tout en gardant les structures confidentielles, c'est-à-dire que je souhaite uniquement mettre dans mes headers le typedef et les déclarations des fonctions de base, et laisser le struct dans le .c qui serait uniquement fourni en .o avec son header.
 
Je crée donc mon 1er type appelé "histo" avec dans histo.c le struct et les fonctions de base, et dans histo.h, le typedef et les déclarations de fonction.
Je compile le .o et tout se passe bien pour le moment.
 
Je crée ensuite mon 2e type appelé "tab_histo" qui réutilise mon type "histo" (idem qu'avant pour le tab_histo.c et tab_histo.h où je fais un include de histo.h).
Mais là, impossible de compiler le .o sans erreur puisqu'il ne sait pas ce qu'est le type histo, gcc ne pouvant pas compiler tab_histo.c en .o tout en "regardant" histo.o.
La seule solution que j'ai trouvé pour le moment, c'est de transférer ma structure à l'origine du type histo dans histo.h, ce qui ne me plaît pas du tout.
 
Y-a-t-il une autre solution qui me permettrait de garder toutes les structures cachées ? :??:
 
Merci par avance :jap:


Tu crées un 2° header "struct_secrete.h" que tu ne donneras pas contenant le code suivant
#ifndef _STRUCT_SECRETE_H_
#define _STRUCT_SECRETE_H_
 
// Définition de toutes tes structures secrètes
...
#endif // _STRUCT_SECRETE_H_
 
Et tu inclus cet header dans tes sources mais sans le distribuer...
 


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 21-05-2006 à 10:40:15    

j'avais aussi envisagé cette solution, je vais faire comme ça :jap:


---------------
LaPointe - USB OTG File Manager for Nexus - Version Trial - Simple Music Player - Version gratuite
Reply

Marsh Posté le 21-05-2006 à 11:34:12    

y a pas à envisager, c'est comme ça qu'on fait !

Reply

Marsh Posté le 21-05-2006 à 16:39:08    

LaPointe a écrit :

J'ai un petit problème dans l'inclusion de types abstraits de données... Je m'explique :<...>Y-a-t-il une autre solution qui me permettrait de garder toutes les structures cachées ? :??:

Ne travailler qu'avec des pointeurs abstraits :  
 
Théorie :  
 
http://mapage.noos.fr/emdel/tad.htm
 
Exemples :
 
http://mapage.noos.fr/emdel/clib.htm


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed