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 :

Est-ce possible de créer à la main les arguments d'une fonction?


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Points : 62
    Points
    62
    Par défaut Est-ce possible de créer à la main les arguments d'une fonction?
    Est-ce possible de creer les arguments d'une fonction d'une maniere plus dynamique?

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    void maFonction1(int param1, char* param2) {}
     
    void maFonction2(bool param1, float param2) {}
     
    void main() {
       void (*fct1)(int, char*) ;
       void (*fct2)(bool, float*) ;
       fct1 = maFonction1;
       fct2 = maFonction2;
     
       void* param = malloc(2*sizeof(int));
       param[0] = (void) 10;
       char string[] = "parametre";
       param[1] = (void) param;
       fct1*(param);
    }
    Ici j'essai de creer a la main les arguments. Ici, c'est plustot statique, mais je veux faire un model ou c'est completement dynamique et ou je ne saurais ni la fonction a appeler, ni le nombre de parametre, ni leur types. Je vais recevoir un tableau de parametre et je dois le passer a la fonction. Au pire, je peux trouver le moyen de lui dire le nombre de parametres. Est-ce possible d'appeler une fonction comme cela? En passant, le code plus haut est ecrit au hasard.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Absolument impossible en C standard.

    Il faut passer par de l'assembleur, ou par des bibliothèques contenant le code Assembleur nécessaire.
    Dans ce thread, j'ai écris du code pour Windows x86 32 bits, qui exploite le code dédié aux composants COM pour appeler la fonction voulue avec les bons paramètres.

    ..mais maintenant que je me suis amélioré côté assembleur, je pourrais faire plus simple (les fonctions de Windows font des vérifications dont on n'a pas forcément besoin sur les paramètres).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Points : 62
    Points
    62
    Par défaut
    A quoi ressemblerait le code assembleur (avec le code pour le inline asm svp, je ne connais pas la syntax, je n'en ai jamais utilise en C).

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Elv13 Voir le message
    Est-ce possible de creer les arguments d'une fonction d'une maniere plus dynamique?
    <...>
    J'ai bien peur que tu sois embarqué dans un solution inutilement complexe. Explique plutôt exactement ce que tu veux faire (le but final), et on étudiera la meilleure façon de le résoudre...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Points : 62
    Points
    62
    Par défaut
    Un pont centrale qui fait passer des donnees et appel des fonctions sans savoir ce qu'il fait. Je ne fait que registerer des items et il reagit quand je lui envoi des donnees. Une sorte de modele observateur observe, mais plus abstrait. Les Objets (thread) ne savent pas qu'il sont observer et ne savent pas a quoi leur donnees servent. Les recepteur ne savent pas d'ou leur donnees viennent, ni vraiment de qu'elles type elle vont etres. Le routeurs choisi le bonne fonction du bon objet et creer les parametres avec ce qu'il recois. Il le fait avec ce qui a ete enregistree (resistered, pas saved) avec une fonction de type

    emmiter, nom_du_signal, reveceur, nom_du signal

    ou emmiter et receveurs sont des structures avec les informations sur les parametres. Je pourais prendre des elypsys (operateur ... en C) mais sa serais moin claire lors de la lecture et le probleme des arguments resterais presque enetier sauf que je pourais faire un switch avec de 1 a 5 parametre, mais c'est mauvais comme solution.

Discussions similaires

  1. [XL-2003] Probléme dans les arguments d'une fonction
    Par ClementZa dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/12/2010, 15h27
  2. [RegEx] Récupérer les arguments d'une fonction
    Par brunoperel dans le forum Langage
    Réponses: 2
    Dernier message: 29/07/2008, 19h46
  3. Connaitre les arguments d'une fonction d'une DLL
    Par dhoorens dans le forum C++
    Réponses: 3
    Dernier message: 26/03/2008, 15h49
  4. [Langage][Classe][Methode]Comment récuperer les arguments d'une fonction ?
    Par FremyCompany dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/07/2006, 16h06
  5. [VBA-E] Lister les arguments d'une fonction
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/02/2006, 12h04

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