| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
    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]) ; }


    }

    Previous :

    next :
      articles connexes
    ·Comment faire pour intégrer Python Dans Visual C 2008 
    ·Comment pointeurs void de déréférencer 
    ·Qu'est-ce que Microsoft Visual C + + 
    ·But principal des fichiers d'en-tête 
    ·Comment faire un C + + void display 
    ·Comment faire partie Int de chaîne C + + 
    ·Comment exécuter un script CGI RPC sur le Web 
    ·Comment utiliser la fonction HeapSize 
    ·Précautions pour les dépassements de tampons 
    ·Les projets ASP.NET et de codification en C 
      articles en vedette
    ·Comment envoyer une messe PHP Email 
    ·Comment activer le mode ARCHIVELOG pour la base de donn…
    ·Comment faire pour installer Perl DBD- ODBC sur AIX 
    ·Comment afficher chaque itération dans une zone de tex…
    ·Comment configurer un serveur Apache pour PHP 
    ·Comment ajouter des modules Perl 
    ·Comment graphe avec jQuery 
    ·MATLAB sortie Chaîne 
    ·Comment animer un JPanel en Java 
    ·Quelle est la différence entre le point Editeurs de ca…
    Copyright © Connaissances Informatiques http://fr.wingwit.com