Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
  Derniers articles
  • Comment exploiter un compilateur Vis…
  • Comment obtenir graphique en C + + 
  • Comment développer des applications…
  • Comment utiliser la surcharge d'opé…
  • Comment savoir Visual C + + 
  • Comment brancher une barre de progre…
  • Comment configurer le contrôle Grid…
  • Xcode Text Editor Tutorial 
  • Comment compiler un RPC sur DOS 
  • Mobile développement C # Tutorial 
  •   C /C + + Programming
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    C /C + + Programming

    Comment utiliser la fonction de rappel en C

    Les fonctions de rappel sont les fonctionnalités avancées du langage de programmation C . Une fonction de rappel permet d'isoler dans la mise en oeuvre d'une fonction de bibliothèque à partir de l'appelant de la bibliothèque . En faisant cela, la bibliothèque peut maintenant être développé de manière indépendante sans aucune connaissance de l'application qui va appeler la fonction de bibliothèque . Cela permet de générer du code compact. En outre, il contribue également à l'élaboration parallèle, comme la personne qui écrit la bibliothèque n'a pas besoin d' attendre que la personne qui écrit la demande , et vice versa. Choses que vous devez
    AC compilateur comme gcc
    éditeur comme emacs ou « vi» pour écrire le programme
    Voir Plus Instructions
    fonctions de rappel
    1

    Apprendre à écrire du code C avec des pointeurs de fonction. Pointeurs de fonction sont comme tous les autres pointeurs en C , sauf qu'ils détiennent l'adresse d'une fonction. Le segment de code ci-dessous est un exemple simple avec des pointeurs de fonction.

    # Include

    int PrintHello () {

    printf (" Bonjour \\ n" ) ; }


    int printHi () {

    printf (" Salut \\ n") ; }


    int main (int argc, char * argv [ ] ) {

    //déclarer un pointeur de fonction

    int ( * p ) (void);

    //point le pointeur de fonction à l'adresse d'une fonction

    p = PrintHello ;

    p ();

    //point le pointeur de fonction à l'adresse d'une autre fonction

    p = printHi ;

    p (); }


    2

    Décidez de ce que la fonction de rappel est approprié pour le programme . Par exemple, le segment de code suivant compare soit deux nombres entiers ou deux chaînes de caractères en fonction de la valeur du troisième argument appelé " option. " Si deux entiers sont comparés , la fonction retourne une valeur de 1 si le premier nombre est plus grand que l'autre. Si deux chaînes de caractères sont comparées , la fonction retourne une valeur de 1 si la première chaîne de caractères a plus de caractères que le second .

    Int callback (void * a, void * b , int options ) {

    si (option == 0) {

    int * c = ( int * ) a;

    int * d = ( int * ) b;

    retour (* c> * d);

    } else if (option == 1) {

    char * c = (char *) a;

    char * d = (char *) b;

    retour
    ( strlen ( c) > strlen ( d)); }


    }
    3

    appeler la fonction de rappel à partir du code source. Supposons qu'un algorithme bulles tri est en cours d'écriture par un programmeur . Cet algorithme trie les valeurs d'une liste dans l'ordre décroissant . Le segment de code suivant appelle la fonction de rappel appelée "FUNC" qui va faire la comparaison.

    Int BubbleSort ( int * valeurs, int len ​​, int ( * func) (void * a, void * b , int c )) {

    int ( * p ) ( void * m, void * n , int p);

    int i , j;

    p = fonction ; < br >

    for (i = 0; i < len ; i + +) {

    for (j = 0; j < i , j + +) {

    si (p ( et valeurs [ ,"i ], et les valeurs [J] , 0)) {

    int t = valeurs [ i] , les valeurs de


    [i] = valeurs [j] ;
    valeurs

    [ ,"j] = t ;

    } }


    } }


    4

    appeler la fonction qui appelle le rappel la fonction à partir du programme principal qui requiert le résultat du tri . Pour l'exemple bulles sorte , la fonction "main" appelle la fonction bulle sorte avec la fonction de rappel spécifié à l'étape 2.

    Int main (int argc, char * argv [ ] ) {
    < p> int i;

    int a [5] = { 4, 2, 5, 9, 1} ;

    BubbleSort (a, 5, callback ) ;

    for (i = 0; i < 5; i + +) {

    printf ( "% d \\ n", un [i]) ; }


    }

     
    Article précédent:
    Article suivant:
    Articles recommandés
  • Comment faire un Stickman en C + + 
  • Comment inverser l'ordre d'un vecteur en C + + 
  • Comment utiliser la fonction Memmove en C + + 
  • Comment mettre en œuvre l' ADT Stack 
  • Comment faire un fichier EXE dans le Bloc-notes 
  • Comment démonter une DLL 
  • Comment utiliser Fortran en C + + Linux 
  • Comment créer un vecteur de tableaux de caractères en C + + 
  • Comment élever un entier à une puissance en C 
  • Comment utiliser des bannières et des autocollants dans GTK Radiant 
  • Connaissances Informatiques © http://www.ordinateur.cc