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 :

[C] Pointeur de fonction


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Bahan
    Inscrit en
    Avril 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2006
    Messages : 147
    Par défaut [C] Pointeur de fonction
    Bonjour.

    J'ai un petit souci avec un pointeur de fonction ^_^.

    Voilà mon code :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    /*
    =======================================================
    * FONCTION
    * ControlerFormat
    *
    * DESCRIPTION
    * controle le format d'un champ
    *
    * SYNTAXE
    * int ControlerFormat(char * pszChamp, int iType)
    *
    * ARGUMENTS
    * - char * pszChamp : le champ dont on veut controler le format
    * - int iType : le type de controle (numerique, date...)
    * 
    * RETOUR ERREURS 
    * - NOK
    *
    * SORTIE BONNE
    * - OK
    *
    =======================================================
    */
    int ControlerFormat(char * pszChamp, int iType)
    {
        int * piFonction;
        int    iCrFonction;
    
        switch(iTypeChamp)
        {
            case type1 :
                    piFonction = Fonction1;
                    break;
            case type2 :
                    piFonction = Fonction2;
                    break;
            ...
            Autres cas
            ...
            default :
                    /* Bug : format inconnu */
                    /* Tracage de l'erreur */				{
                    break;
        }
    	
        iCrFonction = *piFonction(pszChamp);
        if(iCrFonction == NOK)
        {
            /* Tracage de l'erreur */
        }
    
        return(iCrFonction);
    }
    Sachant que les fonctions vers lequel je pointe prennent toutes un seul argument qui est le champ à contrôler. Elle ramène toute qui plus est un entier qui peut être soit OK soit NOK, des constantes que j'ai défini comme étant respectivement égale à 0 et à -1.

    J'aurais donc aimé savoir si ma syntaxe était juste concernant le pointeur de fonction ou si je fais une bourde quand même ?

    edit : bon, en soit, c'est vrai que cela ne sert pas à grand chose, viens-je de m'apercevoir, mais c'est juste pour savoir utiliser des pointeurs de fonction .

    Merci d'avance pour vos réponses.

    Bahan

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Ta variable piFonction est un pointeur vers une variable de type int. Pour que cela soit un pointeur de fonction,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int (*piFonction)(char *pszChamp);
    L'initialisation se fait comme tu le proposes.
    L'appel se fera simplement par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    iCrFonction = piFonction(pszChamp);
    Si tu veux te debarrasser du switch(), tu peux aussi declarer et initialiser un tableau de pointeurs de fonction.

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

Discussions similaires

  1. opengl et pointeur de fonction
    Par Oldhar dans le forum C
    Réponses: 5
    Dernier message: 06/11/2003, 23h56
  2. Declaration de fonction retournant un pointeur sur fonction
    Par pseudokifaitladifférence dans le forum C
    Réponses: 5
    Dernier message: 11/08/2003, 19h37
  3. Matrice de pointeurs de fonctions
    Par sebduth dans le forum C
    Réponses: 15
    Dernier message: 18/07/2003, 14h03
  4. [Kylix] Pointeur de fonctions
    Par _dack_ dans le forum EDI
    Réponses: 1
    Dernier message: 03/07/2003, 10h17
  5. pointeur de fonction
    Par kardath dans le forum C
    Réponses: 4
    Dernier message: 28/12/2002, 14h39

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