IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Lecture de code source


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Moine
    Inscrit en
    Mars 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 210
    Par défaut Lecture de code source
    Salut

    Je voudrais vous posez une question. Comment faites vous pour comprendre un code que vous n'avez pas ecrit? Surtout dans l'hypothèse que le programmeur n'a pas pris soins de faire des commentaires et le code est volumineux. Je suis confronté à cette situation,je tourne en rond,ça m'enerve. Voilà si vous avez des astuces à me filer n'hesitez pas.

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Typiquement, je fais les fonctions "feuilles" en premier: Je les analyse, je les commente, je rajoute les "const" qui vont bien (car un programmeur qui ne commente rien est un mauvais programmeur, et un mauvais programmeur ignore souvent l'existence du mot-clé "const"), je les documente, puis je passe à la suivante.

    Puis je passe aux fonctions n'utilisant que des fonctions que je viens de documenter, et ainsi de suite.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre chevronné Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par défaut
    Je suppose que le code compile, après installation éventuelle des bibliothèques non standards nécessaires. Sinon, c'est très mal engagé.

    Je suppose également que vous pouvez modifier le code. Il s'agit donc de vous l'approprier, au sens intellectuel du terme.

    A ce moment-là, vous pouvez vous aider d'un IDE. Vous comptez un certain temps pour l'installation et la prise en main de cet IDE, mais ce ne sera pas du temps perdu et le programme à "comprendre" vous sortira un peu de la tête, ce qui n'est pas plus mal.

    Ce qui serait bien c'est que le truc puisse être compilé avec gcc 3.2 et +, même si ensuite vous utilisez autre chose. A ce moment-là, vous installez Eclipse + CDT, que ce soit sous Windows ou sous Linux, c'est facile. Eclipse 3.3 et CDT 4.x, c'est le mieux, mais en anglais (n'essayez pas les solutions de francisation partielle, c'est cac). Sinon, Eclipse 3.2 et CDT 3.x (?), avec le language pack. Pour la dernière version, en anglais, vous avez un bundle Eclipse for C/C++, pour la version 3.2 je ne sais pas.

    Ensuite vous faites une paire de "Hello World", puis vous créez un projet avec vos sources velues. Vous pouvez créer un projet vide puis ajouter vos fichiers distants, le projet sera dans le Workspace, mais les sources ne bougeront pas.

    Ensuite, à vous d'utiliser la puissance du machin. Vous commencerez par voir les fenêtres "Prject explorer" et "Outline". Vous reformaterez automatiquement vos sources pour avoir une indentation correcte. Vous pouvez aller directement à la déclaration d'un identifiant, obtenir une liste cliquable de toutes les occurrences du nom d'une fonction dans le projet, et bien d'autres choses.

    Vous tenterez à partir de là de comprendre fonction par fonction, puis globalement. Vous mettrez un bref commentaire devant chaque fonction (dans le .h que vous aurez au besoin créé), et éventuellement des commentaires temporaires facile à éliminer (par exemple en utilisant /*MoinePige ... */), vous pourrez utiliser également les TODO lists. Au fur et à mesure, vous allez utiliser le refactoring, essentiellement le renommage intelligent.

    Voilà, c'est vous qui voyez si ça vaut le coût ...

    Bonne journée,

    Pierre

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Merci à Pierre Maurette pour avoir explicité que le code devait compilé, être modifiable, etc. : Ce sont des choses que je prenais pour déjà acquises dans mon post, alors que dans les pires cas on n'y a même pas droit...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre confirmé Avatar de Moine
    Inscrit en
    Mars 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 210
    Par défaut Lecture de code source
    Ok, je vous remercie. Je repars attaquer ce code à nouveau. Je crois que ça ira.Je reviendrais voir s'il n'y a pas d'autres trucs.. A+

  6. #6
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    J'utiliserais un débuggueur pour pouvoir faire une trace de l'algo (voir où ça passe et comment)

  7. #7
    Membre confirmé Avatar de Moine
    Inscrit en
    Mars 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 210
    Par défaut Lecture de code source
    Vos reponses m'ont beaucoup aidé, j'arrive à m'en sortir. Merci

  8. #8
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Eclipse + CDT, ça rame pas mal sur mon pauvre PIII en fin de carrière. Tu peux également utiliser SourceNavigator ou cscope pour faciliter la navigation dans le code source.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

Discussions similaires

  1. Lecture de fichier de code source
    Par forum dans le forum Télécharger
    Réponses: 0
    Dernier message: 01/03/2014, 13h39
  2. Code sources pour la lecture de fichier mp3
    Par elbert1509 dans le forum Débuter
    Réponses: 1
    Dernier message: 26/01/2011, 14h04
  3. Je cherche le code-source d'un interface de Windows
    Par Robert A. dans le forum Windows
    Réponses: 5
    Dernier message: 02/06/2003, 09h45
  4. [VB6] Code source pour modifier MsgBox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 25/02/2003, 15h13

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