Probléme d'inclusion - C - Programmation
Marsh Posté le 16-05-2005 à 17:07:40
pinguin007 a écrit :
|
Manque les protections contre les inclusions multiples.
#ifndef H_AUTOMATE |
Citation : et list.h
|
Même punition...
#ifndef H_LIST |
Citation : Dans ce cas l'inlusion croisée pose probléme, comment faire pour que ca marche |
inclusion croisée sans protection... Ca sent le paté...
http://mapage.noos.fr/emdel/codage [...] ser_source
[edit]
Ok, tu as ajouté les protections, mais elles ne doivent pas avoir de _ en tête.
http://mapage.noos.fr/emdel/codage.htm#nom_underscore
[/edit]
Après analyse de ton code, il y a un problème de conception qui n'est pas solvable, tout simplement parce que la conception n'a pas été assez refléchie. Il faut en effet séparer les données de la cellule de l'automate de la structure de liste chainée. L'automate n'a pas à savoir que ces cellules sont en liste. Par contre, la liste peut savoir qu'elle fait une liste de cellules d'automates. Il y a donc une hiérarchie à respecter (oui, je sais, ça fait mal!)
Nous avons d'abord des cellules d'automates indépendantes. Elle pourraient former un tableau, une liste, un arbre, peu importe... Aucune référence n'est faite à l'organisation en mémoire.
|
Et puis nous avons une organisation en chaine d'objets 'automate'...
|
Je le rappelle au cas où ça ne serait pas évident : il ne peut pas y avoir de bon codage sans une bonne conception préalable.
Marsh Posté le 16-05-2005 à 17:20:52
oups j'ai modifié le premier post, les protections sont sensées être là ^^
Marsh Posté le 16-05-2005 à 23:44:23
Enfin problème de conception qui n'est pas solvable...
Suffit de faire ça (je suppose juste que LIST est un pointeur sur cellule et non pas une cellule) :
list.h
#ifndef LIST_H |
automate.h
#ifndef AUTOMATE_H |
Si tu veux tout de même que LIST ne soit pas un pointeur c'est possible mais je ne pense pas que ce soit ce que tu veilles faire.
PS : Bon après je ne dit pas que la conception n'est pas à revoir.
Marsh Posté le 16-05-2005 à 16:47:10
Alors voila, en ce moment je me trouve avec un programme divisé en plusieurs fichiers .c / .h et mon probléme aparait maintenant à la compilation notement la gestion des .h
par exemple j'ai :
automate.h
et list.h
Dans ce cas l'inlusion croisée pose probléme, comment faire pour que ca marche
Message édité par pinguin007 le 16-05-2005 à 17:20:01
---------------
LoD 4 ever && PWC spirit|Le topak de l'iMP-450|inDATOUNEwe trust