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 :

declaration ambigue fonction


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut declaration ambigue 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
    int DirScan(char * dirname, int(*compute)(struct dirent *))
    {
      int   fd;
      DIR * dir;
      struct dirent *direntry;
     
      if ( (dir = opendir(dirname)) == NULL) { /* open directory */
        return -1;
      }
      fd = dirfd(dir);                        /* get file descriptor */
      fchdir(fd);                             /* change directory */
      /* loop on directory entries */
      while ( (direntry = readdir(dir)) != NULL) { /* read entry */
        if (compute(direntry)) {            /* execute function on it */
          return -1;
        }
      }
      closedir(dir);
      return 0;
    }
    voila la fonction que je ne comprend pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int(*compute)(struct dirent *))
    a quoi correspond ca?

  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
    Pointeur de fonction.
    Pointeur vers une fonction prenant un struct dirent* en entrée, et retournant un int.

    C'est souvent plus lisible avec un typedef:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef int (*COMPUTEPROC)(struct dirent *);
     
    int DirScan(char * dirname, COMPUTEPROC compute)
    {
      /* ... */
    }
    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.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/04/2006, 22h11
  2. Comment declarer une fonction ou procedure globale
    Par manubrard dans le forum Langage
    Réponses: 8
    Dernier message: 21/02/2006, 14h21
  3. Réponses: 3
    Dernier message: 15/12/2005, 22h04
  4. declaration de fonction
    Par jeannot27 dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/04/2004, 10h31
  5. Declaration de fonction retournant un pointeur sur fonction
    Par pseudokifaitladifférence dans le forum C
    Réponses: 5
    Dernier message: 11/08/2003, 19h37

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