Votre question

Organisation de mon code (C).

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
2 Janvier 2012 17:45:07

Bonjour à tous,

J'ai quelques difficultés a savoir comment organiser mon code (Du C),

j'ai actuellement un programme qui fonctionne très bien sous linux avec un makefile,
mais tout est en vrac dans les fichiers, j'aimerais bien tout rendre plus clair avec des header et des includes
dans mon .c principale histoire de tout compiler d'un coup avec un seul fichier et de sorte a avoir un truc qui puisse se compiler sur n'importe quel OS
sans avoir de modifications a faire.

Du coup J'ai un peu de tout,
-Des déclarations de structures
-Des variables globales
-Des defines

en fait j'aimerais savoir du coup comment ranger tout ça...
les defines faut il les mettre dans un .c ou dans un .h ? voir dans un autre fichier comprenant tout les defines ? (cette dernière possibilité étant la plus pratique a mon gout vu que j'utilise les même defines dans mes différents .c)

les déclarations de structures pareille ? autre fichier ? ou si non .c ou .h ?

les variables globales, même problème.

Voilà merci,
Peut être je repasserais avec d'autres questions.

Autres pages sur : organisation code

a b L Programmation
2 Janvier 2012 20:49:54

Oui, tu peux peux mettre tous les defines dans un fichier .h.
Pour les variables globales, tu peux les déclarer en extern dans un fichier .h commun, et les définir dans les fichiers .c.

Les déclarations de structures et prototypes, je les mettrais dans le fichiers .h correspondant au fichier .c qui les manipule. Tu peux aussi y mettre les defines très spécifique au fichier .c (des defines qui ne serviront nulle part ailleurs).

Il faut aussi éviter de faire des fonctions trop longues : mieux vaut faire faire trop de fonctions et les classer dans plusieurs fichiers .c, mais le principal est d'avoir des commentaires bien faits :
- pour les structure une explication rapide des champs
- pour les fonctions : résumé + paramètres + retour
- des commentaires fonctionnels dans le code

6 Janvier 2012 20:53:23

Okay, merci pour ces conseils.
J'ai eu dans certains cas des problèmes de multi-déclaration à la compilation,
apparemment le problème viendrait d'un .h qui en appelle un autre qui rappelle ce premier .h.
Vu qu'après vérification et revérification rien n'avait été déclaré deux fois...

(Mon binôme de projet, a apparemment résolu le problème, mais je n'ai pas eu encore l’occasion de lui demander les détails).
avez-vous une idée pour éviter ce genre de problème ?

merci
a b L Programmation
6 Janvier 2012 21:46:32

Oui, en fait il faut jouer avec la précompilation (les #define et #include qui sont remplacés avant la compilation réelle comme si c'était un copier/collé).

La technique classique est de mettre en début de fichier .h:
#ifndef __TON_FICHIER_H__
#define __TON_FICHIER_H__


et en fin de fichier .h:
#endif


Comme ça, lorsque tu fais un second include de ce fichier, __TON_FICHIER_H__ sera définie et tout ce qui est dans le fichier ne sera pas redéclaré une seconde fois.
Evidemment, il faut appliquer la même technique sur tous les fichiers .h
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS