[Langage C] Les structures ?

Résolu/Fermé
UNIX/VI/SHELL Messages postés 87 Date d'inscription mercredi 12 juillet 2006 Statut Membre Dernière intervention 8 avril 2009 - 28 mars 2007 à 15:22
UNIX/VI/SHELL Messages postés 87 Date d'inscription mercredi 12 juillet 2006 Statut Membre Dernière intervention 8 avril 2009 - 29 mars 2007 à 08:15
Bonjour,

J'ai un petit probléme, lorsque j'écrit mon programme, j'utulise des structures, ces structures peuvent etre utulisés dans des fonctions, le probléme c'est que je n'arrive pas à modifier la structure originelle pour que les modification soit pris en conte dans tous le programme, c'est modification peuvent etre initialisé dans les fonctions.

5 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
28 mars 2007 à 16:14
Il faut que la structure soit définie globalement et non à l'intérieur de main ou d'une procédure.
0
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
28 mars 2007 à 16:20
Salut,

Si ta structure correspond à la feuille du personnage (état, caracts, pv, etc), en théorie c'est un paramètre dans chaque fonction. Dans ce cas, un return de la structure est possible. Evidemment, ça limite un peu la possibilité de retour des fonctions si tu es obligé de faire comme ça, mais si tu ne veux pas utiliser de pointeurs, il faudra bien !

La méthode variable globale est tout à fait envisageable dans ton cas. Cependant essaye de ne pas en abuser, c'est vraiment pas propre, même si c'est très utile (un peu comme les goto). Dans ton programme, normalement il n'y a aucun risque que la structure soit appelée en concurrence, donc c'est une bonne idée ! Dans ce cas, inutile de mettre la structure dans le return.

Il reste la méthode assez moche de faire une structure contenant ta structure + d'autres flags évènements que tu utiliseras dans tes returns, mais vraiment c'est laid !
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
28 mars 2007 à 17:46
Je déconseille vivement de passer en globale les structures, uniquement les squellettes.

Sinon encore, tu créé une structure que tu peux appeler 'Logger' par exemple, dont tu renseigne certains champ en cas d'erreur.
Cette structure, à la différence des autres serait globale (car commune et vue de toutes les parties de ton programme).

Ainsi par exemple, au retour d'une fonction, tu pourra récupérer ta structure dont un champ a été modifier par exemple, et en plus vérifié qu'il n'y a pas eu d'erreur, et si c'est le cas, récupérer le dernier message d'erreur.
Et dans tes fonctions, en cas d'erreur tu renseigne la structure logger.
0
UNIX/VI/SHELL Messages postés 87 Date d'inscription mercredi 12 juillet 2006 Statut Membre Dernière intervention 8 avril 2009 7
28 mars 2007 à 18:57
Re,


A quoi ressemblera la syntaxe ? Vous me pourriez me montrer avec un exemple de code en C svp ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
UNIX/VI/SHELL Messages postés 87 Date d'inscription mercredi 12 juillet 2006 Statut Membre Dernière intervention 8 avril 2009 7
29 mars 2007 à 08:15
Re,

c'est bon ca marche, j'ai donc utulisé des variables globales.
0