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 :

Reprendre un programme deja existant pour y ajouter d'autres fonctions


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Developer
    Inscrit en
    Juin 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developer

    Informations forums :
    Inscription : Juin 2004
    Messages : 194
    Points : 58
    Points
    58
    Par défaut Reprendre un programme deja existant pour y ajouter d'autres fonctions
    Bonjour,

    J'ai un programme réalisé avec le compilateur Keil auquel je voudrais ajouter d'autres fonctions et codes.
    J'ai essayé d'y ajouter des nouvelles fonctions mais tout en vain car
    Ce programme est utilisé dans un sytème embarqué à base du microcontrolleur et permet de lire des fichiers audio qui se trouvent dans la flash du microcontrolleur. Pour l'évolution du projet on a mis une carte CompactFlash afin cette fois de mettre les fichiers mp3 dans la CF et d'aller lire des fichiers par ce biais là. Donc le code existant est deja consistant (bien que commenté) et je voudrais y implementer le code, toujours sous le compilateur Keil, qui ira lire sur le secteur de la CF à des adresses données les fichiers à jouer, il faut donc inclure aussi un système de fichier ici FAT. Donc en bref existe-t-il des outils ou une methode pour bien travailler sur un programme qui existe déjà?

    J'utiliserai aussi des fonctions existants donc comment eviter les erreurs de type : redefinitions des fonctions et des variables lorsque je fais appel à ces fonctions sur d'autres fichiers par exemple?
    En utilisant le mot clé extern ou en incluant des headers ?

    Merci

  2. #2
    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 : 47
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Si le projet a été bien conçu depuis la base pour éviter au maximum les collisions de noms, il ne devrait pas trop y avoir de problèmes. Une conception modulaires, qui utilise les types abstraits de données (ADTs), ou les noms de fonctions sont préfixés avec le nom de la structure sur laquelle ces fonctions travaillent, etc, facilitent l'évolution du programme. Privilégiez les fonctions privées statiques lorsque ces fonctions sont nécessaires uniquement pour le fonctionnement interne de l'ADT. Fuire les variables globales comme la peste, et justifier les cas où ces dernières vous semblent incontournables.

    Maintenant, pour faire évoluer le programme, il faut je pense avoir une bonne vue d'ensemble de son architecture, de ces différents blocs fonctionnels. Difficile de donner de véritable heuristiques, car cela dépend beaucoup de la qualité de conception du programme initial.

    Meilleures salutations et bonne chance

    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++

    +

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Cela ne vaut que ce que cela vaut mais si vous devez vous ballader dans un programme conséquent pour apprendre à le connaître, un outil comme LXR peut aider. Exemple de ce que cela donne ici.
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

  4. #4
    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 : 47
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par David.Schris
    Cela ne vaut que ce que cela vaut mais si vous devez vous ballader dans un programme conséquent pour apprendre à le connaître, un outil comme LXR peut aider. Exemple de ce que cela donne ici.
    Moi, j'utilise Source Navigator. Je ne connaissait pas LXR. Merci

    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++

    +

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par mujigka
    Moi, j'utilise Source Navigator. Je ne connaissait pas LXR. Merci

    Thierry
    Pareil : merci
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

  6. #6
    Membre du Club
    Profil pro
    Developer
    Inscrit en
    Juin 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developer

    Informations forums :
    Inscription : Juin 2004
    Messages : 194
    Points : 58
    Points
    58
    Par défaut
    Merci à tous

Discussions similaires

  1. Instancier un panel pour l'ajouter à un autre
    Par Flora2013 dans le forum NetBeans
    Réponses: 1
    Dernier message: 06/02/2014, 12h40
  2. Ajouter des objets dans un fichier deja existant
    Par schine dans le forum Persistance des données
    Réponses: 1
    Dernier message: 31/01/2013, 01h42
  3. Réponses: 2
    Dernier message: 20/02/2009, 20h14
  4. Réponses: 2
    Dernier message: 20/02/2009, 15h44

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