| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> C /C + + Programming >> Content
    Come utilizzare la funzione di callback in C
    Le funzioni di callback sono funzionalità avanzate in linguaggio di programmazione C . Una funzione callback aiuta a isolare l'attuazione di una funzione di libreria dal chiamante della libreria. In tal modo, la libreria può essere sviluppato in modo indipendente , senza alcuna conoscenza dell'applicazione che sta per chiamare la funzione di libreria . Questo aiuta a generare codice compatto . Inoltre , aiuta anche a sviluppo parallelo , come la persona che scrive la libreria non deve aspettare la persona scrittura dell'applicazione , e viceversa . Cose che ti serviranno
    AC compilatore come gcc
    editor come emacs o "vi" per scrivere il programma
    Mostra più istruzioni
    funzioni di callback
    1 < p > Imparare a scrivere codice C con puntatori a funzione . Puntatori a funzione sono simili ai puntatori in C , salvo che siano in possesso l'indirizzo di una funzione . Il segmento di codice riportato di seguito è un esempio semplice con i puntatori a funzione .

    # Include

    int PrintHello ( ) {

    printf ( " Ciao \\ n" ) ;

    }

    int printHi ( ) {

    printf ( "Ciao \\ n"); }


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

    //Dichiara una funzione puntatore

    ( * p ) ( void) int ;

    //Point il puntatore a funzione l' indirizzo di una funzione

    p = PrintHello ;

    p ();

    //Point il puntatore a funzione per l'indirizzo di un'altra funzione

    p = printHi ;

    p (); }


    2

    decidere su ciò che la funzione di callback è appropriato per il programma . Ad esempio, il seguente segmento di codice a confronto sia due numeri interi o due stringhe di caratteri in base al valore del terzo argomento denominato " opzione ". Se due numeri interi vengono confrontati , la funzione restituisce il valore 1 se il primo numero è maggiore dell'altra . Se due stringhe di caratteri vengono confrontati , la funzione restituisce un valore pari a 1 se la prima stringa di caratteri ha più caratteri al secondo .

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

    if ( opzione == 0 ) {

    int * c = ( int *) a;

    int * d = ( int * ) b ;

    ritorno ( * c > * d);

    } else if ( scelta == 1) {

    char * c = ( char *) a;

    char * d = ( char * ) b ;

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


    }
    3

    Chiamare la funzione di richiamata dal codice sorgente . Si supponga che un algoritmo bubble -sort è stato scritto da un programmatore . Questo algoritmo ordina i valori in una graduatoria decrescente . Il seguente frammento di codice chiama la funzione di callback chiamata " funzione ", che farà il confronto .

    Int bubblesort ( int * valori , int len , int ( * func ) (void * a, void * b , int c ) ) {

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

    int i , j ;

    p = func ; < br >

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

    for ( j = 0; j

    se ( p ( e valori [ ,"i], e valori [j ] , 0 ) ) {

    int t = valori [ i];
    valori

    [ i] = valori [j] ;
    valori

    [ ,"j ] = t ;

    }

    }

    }

    }
    4

    Chiama la funzione che richiama il callback funzione dal programma principale che richiede il risultato dell'ordinamento . Per l'esempio di bubble -sort , la funzione " main" chiama la funzione bubble -sort con la funzione di callback specificato al punto 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" , a [i] ) ; }


    }

    Previous :

    next :
      Articoli Correlati
    ·Come fare un App iPhone Really Simple 
    ·Come utilizzare la funzione strpbrk in C + + 
    ·Come impostare l'ultima fila di una griglia a fuoco 
    ·Come faccio a scrivere un programma di conversione di t…
    ·Come risolvere C + + Error R6002 
    ·Come per lo streaming video in diretta in Xcode 
    ·Che cosa è un programmatore ISO 
    ·Come rilevare un debugger 
    ·Come invertire una coda in C + + 
    ·Come installare i compilatori C + + per Netbeans 
      Articoli in evidenza
    ·Come specificare una proprietà predefinita in Visual B…
    ·Qual è la complessità temporale di una ricerca in pro…
    ·Come reimpostare contentView sul Android 
    ·Tutorial Java per la connessione di un applet ad un tel…
    ·Come cambiare Struts Locale in Java 
    ·Come fare un blocco in PHP Nuke 
    ·Come inserire un JPG in una finestra di dati 
    ·Come accettare l'input dell'utente con Python 
    ·Come scrivere data e ora tramite Visual Basic 
    ·Come creare una tabella di un file delimitato in Visual…
    Copyright © Conoscenza Informatica http://it.wingwit.com