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 :

[Pointeurs] Optimisation, appel d'une liste de fonctions


Sujet :

C

  1. #1
    Membre confirmé Avatar de _KB_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut [Pointeurs] Optimisation, appel d'une liste de fonctions
    Bonjour à tous,

    J'aimerais si possible que vous m'aidiez à trouver une piste pour ce que je cherche à faire.

    J'ai un certain nombre d'appel de fonctions que je dois effectuer les uns à la suite des autres, ceci afin de contrôler leur temps d'exécution.

    Je souhaite pouvoir rajouter/supprimer facilement une fonction à tout moment en bougeant le moins de code possible. Le changement ne doit pas se faire de manière dynamique. Une simple liste de pointeurs à modifier avant de recompiler le programme me suffit

    J'avais pensé m'inspirer du principe d'un callback. Avec un tableau de pointeurs de fonctions. Seul problème, mes fonctions ont des arguments et des valeurs de retours de types différents...

    Une idée ?

    Merci

  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
    J'ai du mal à comprendre pourquoi tu ne peux pas simplement faire une grande fonction qui appelle toutes les autres à la 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 confirmé Avatar de _KB_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    Si si je peux. C'est déjà ce que je fais.
    Je voulais savoir si ce que je veux obtenir est possible c'est tout.
    Maintenant si c'est trop compliqué ou tiré par les cheveux je laisserai tomber

  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
    Pour des fonctions qui ont une interface différente, c'est pratiquement mort. Dans ce cas, tu réécris un interpréteur de bytecode...
    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
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Tu as toujours la solution, si c'est à des fins de test, d'utiliser des macros pour encapsuler tes appels de fonction... Ceci étant dit, ça ne sera pas vraiment beaucoup plus pratique qu'une succession d'appels, ça éliminera juste les problèmes de chronométrage qui seront encapsulés... Mais ça ne gèrera pas les valeurs de retour différentes, à part si tu les ignores purement et simplement.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  6. #6
    Membre confirmé Avatar de _KB_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    Ok merci à vous 2.
    Je pense que je vais rester avec ma succession d'appel ....

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    bah, pour rajouter le moins de code possible, tu fais des fonctions enregistrées... si c'est dynamique ou dans une bibliothèque..

    Sinon, tu fais un tableau de flags correspondants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int A_Declencher[100]
     
    #define FONCTION_TOTO 0
    #define FONCTION_TATA 1
     
    ...
     
    If ( A_Declencher(FONCTION_TOTO))
       toto();
     
    If ( A_Declencher(FONCTION_TATA))
       tata();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel d'une liste de fonction dans une boucle
    Par lechilien dans le forum Général Python
    Réponses: 5
    Dernier message: 13/04/2012, 09h04
  2. Réponses: 2
    Dernier message: 29/05/2006, 15h58
  3. Problème d'appels d'une variable entre fonctions
    Par julien.nasser dans le forum MFC
    Réponses: 12
    Dernier message: 26/04/2006, 09h23
  4. Réponses: 7
    Dernier message: 28/02/2006, 16h46

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