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 :

question fonction en C


Sujet :

C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 67
    Points : 30
    Points
    30
    Par défaut question fonction en C
    bonjour,
    est-ce qu'il est possible en C de mettre en parametre une fonction fct2 dans une autre fonction fct1, par exemple void fct1(fct2, int a) ?
    merci de vos reponses.

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Salut,

    Oui c'est possible avec les "pointeurs de fonction", il y a quelques fonctions de la librairie standard qui utilisent cette technique, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void qsort (void *base, size_t nmemb, size_t size,
        int (*compar)(const void *, const void *));
    Ici le 4eme paramètre doit être un pointeur sur une fonction ayant le prototype donné (retourne un int et a 2 paramètres const void *)
    http://man.developpez.com/man3/qsort.3.php

  3. #3
    Membre averti Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Points : 441
    Points
    441
    Par défaut
    Effectivement, si la signature de la fonction que tu veux mettre en paramètre ressemble à : alors la fonction qui prendra fct en pramètre devra avoir une signature du genre
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    TonType Tafonction(int (*ptfct)(void *),.....)
    . A chaque fois que tu voudras appeler une fct en paramètre de Tafonction, il faudra veiller à ce que la signature de fct corresponde bien à la signature attendu en paramètre.
    Etre ou ne pas être, telle est la question sinusoïdale de l'anachorète hypocondriaque et vice et versa .
    Bonsai monsieur, bonsai madame, vous avez gagnez un milliard de degrés au soleil .
    There is no cure for stupidity (ou pas ).

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Un rapide exemple pour te montrer l'utilisation des pointeurs de fonction.

    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
    17
    18
    19
    20
     
    #include <stdio.h>
     
    int fct2 (int i) {
      return i*10;
    }
     
    int fct3 (int i) {
      return i*100;
    }
     
    void fct1(int (*f)(int), int a) {
      printf ("f(%d)=%d\n", a, f(a));
    }
     
    int main () {
      fct1 (fct2, 7);
      fct1 (fct3, 7);
      return 0;
    }

  5. #5
    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 space_56 Voir le message
    est-ce qu'il est possible en C de mettre en parametre une fonction fct2 dans une autre fonction fct1, par exemple void fct1(fct2, int a) ?
    Peut être. Que veux-tu faire exactement ?
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. Question fonction analytique
    Par SheikYerbouti dans le forum SQL
    Réponses: 3
    Dernier message: 10/03/2008, 12h16
  2. question fonction rename
    Par john123 dans le forum Langage
    Réponses: 4
    Dernier message: 06/02/2008, 00h05
  3. Questions fonction free()
    Par Yann39 dans le forum Bibliothèque standard
    Réponses: 5
    Dernier message: 19/12/2007, 13h27
  4. question fonction split
    Par fessebleu dans le forum Langage
    Réponses: 2
    Dernier message: 28/05/2006, 02h33
  5. [Excel] question fonction !!!
    Par Fealendril dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 25/01/2006, 19h21

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