1. #1
    Membre du Club
    Profil pro
    Inscrit en
    février 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2012
    Messages : 67
    Points : 50
    Points
    50

    Par défaut comment organiser un programme en c

    Bonjour, je voudrais simplement savoir comment organiser mon main, mes fonctions, mes en-têtes etc. Je vois souvent des gens créer une grande quantité de .h, n'est ce pas mieux de les regrouper tous les prototypes dans un seul fichier ?
    Merci d'avance.

  2. #2
    Responsable Modération
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    septembre 2007
    Messages
    7 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2007
    Messages : 7 058
    Points : 22 405
    Points
    22 405

    Par défaut

    Bonjour,

    En fait, on fait plutôt l'inverse : on commence en général au plus simple, donc une paire de fichiers *.c et *.h, et on décompose leur contenu au fur et à mesure que le projet grossit et que les différentes sections se spécialisent. À ce stade, ça commence à devenir intéressant pour éviter de tout recompiler à la moindre modif' mais également parce que les sous-ensembles finissent parfois par devenir de vrais petits projets. En particulier, quand ils servent à gérer une infrastructure sous-jacente, ils finissent parfois par devenir des bibliothèques à part entière, d'usage général et séparées du projet initial.

    Quoi qu'il en soit, le C reste un langage qui te laisse une grande liberté, et donc une grande souplesse, dans la façon d'organiser tes ressources.

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur systèmes embarqués
    Inscrit en
    juin 2009
    Messages
    3 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes embarqués

    Informations forums :
    Inscription : juin 2009
    Messages : 3 560
    Points : 9 355
    Points
    9 355
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par aperdemak Voir le message
    n'est ce pas mieux de les regrouper tous les prototypes dans un seul fichier ?
    Je trouvais ça tentant il y a longtemps. J'avais expliqué pourquoi ici : https://gradot.wordpress.com/2012/03...ader-unique-c/

    Et avec le temps, j'ai compris que c'était mauvais et je l'ai expliqué ici : https://gradot.wordpress.com/2014/07...globales-en-c/

    C'est tentant parce que c'est pratique. Mais cela pose beaucoup de problèmes (que je détaille dans mon 2e article, mais je fais résumer ici) :
    - si tu modifies ton super header, parce que tu rajoutes un nouveau truc ou simplement parce que tu modifies un commentaire, alors ton projet tout entier se recompile.
    - si tu dans un second projet, tu souhaites réutiliser seulement une partie, tu ne pourras pas reprendre cette partie du premier projet sans découper, alors autant découper tout de suite.
    - ce fichier risque de contenir beaucoup de choses et ce ne sera pas facile de s'y retrouver
    - tu risque de faire aussi un seul fichier *.c qui souffrira aussi des 2 défauts précédents.

    Sur un petit projet, ce n'est pas rare de n'avoir que quelques fichiers. Sur des projets plus conséquents, c'est souvent (pas toujours) mauvais signe.

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    5 893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 5 893
    Points : 16 268
    Points
    16 268
    Billets dans le blog
    1

    Par défaut

    Bonjour
    Citation Envoyé par aperdemak Voir le message
    n'est ce pas mieux de les regrouper tous les prototypes dans un seul fichier ?
    Non ce n'est pas mieux. Je pense mieux au contraire d'être le plus atomique possible. Chaque module ne fait qu'une chose mais il la fait bien (tout comme Unix où chaque programme ne fait qu'une chose mais la fait bien).
    Et chaque module contient donc un ".h" qui indique comment l'utiliser et un ".c" pour coder son action.

    Fatalement tu auras plein de ".h". A toi de bien les nommer et bien les ranger (ne pas négliger les possibilités offertes par la création de sous-dossiers) par catégories d'action. Pour cela on conseille généralement la méthode MVC (Modèle/Vue/controleur)
    Le Modèle c'est la façon de stocker les info (dans des fichiers ? dans une bdd ? en mémoire ?). La Vue c'est la façon de faire entrer et sortir les infos (généralement saisie/affichage) et le Controleur contient tous les outils pour traiter les données et produire des résultats...
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  5. #5
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    juillet 2013
    Messages
    2 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : juillet 2013
    Messages : 2 153
    Points : 4 786
    Points
    4 786

    Par défaut

    Pour moi, c'est presque un jeu

    Dans les entêtes (fichier .h), avoir le moins d'include (et donc le moins de déclarations), et abuser des "forward declarations" (déclarations avancées)

Discussions similaires

  1. [Méthodologie] Comment s'organiser pour programmer?
    Par Donaldo dans le forum Méthodes
    Réponses: 5
    Dernier message: 04/05/2006, 01h38
  2. [Debutant(e)][eclipse] Comment organiser ses projets ?
    Par Javanaute dans le forum Eclipse Java
    Réponses: 9
    Dernier message: 09/04/2004, 11h07
  3. comment deployer un programme fait avec jbuilder
    Par showmetheway dans le forum JBuilder
    Réponses: 6
    Dernier message: 23/09/2003, 02h11
  4. Réponses: 8
    Dernier message: 05/06/2002, 12h55
  5. Comment débuter en programmation ?
    Par Marc Lussac dans le forum Débuter
    Réponses: 0
    Dernier message: 08/04/2002, 12h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo