| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> C /C + + Programming >> Content
    Sådan bruges Callback Funktion i C
    tilbagekald funktioner er avancerede funktioner i C programmeringssprog . Et callback funktion hjælper med at isolere gennemførelsen af ​​et bibliotek funktion fra den, der ringer på biblioteket. Ved at gøre dette , kan biblioteket nu udviklet uafhængigt uden nogen viden om det program, der kommer til at kalde biblioteksfunktionen . Dette hjælper med at skabe kompakt kode . Endvidere er det hjælper også i parallel udvikling , som den person, skriver biblioteket behøver ikke vente på den person, skrive ansøgningen , og vice versa. Ting du skal
    AC compiler som gcc
    Editor såsom emacs eller " vi " for at skrive programmet
    Vis Flere Instruktioner
    callback funktioner
    1 < p > Lær at skrive C-kode med funktions pointere. Funktion pointers er ligesom alle andre pejlemærker i C , bortset fra at de har adressen på en funktion. Kodesegmentet nedenfor er et simpelt eksempel med funktions pointere.

    # Include

    int printHello () {

    printf ( "Hello \\ n" ),

    }

    int printHi () {

    printf ( "Hej \\ n ");

    }

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

    //Erklær en funktion pointer

    int ( * p) (void) ;

    //Punkt funktionen pointer til adressen på en funktion

    p = printHello ,

    p ();

    //Punkt funktionen pointer til adressen på en anden funktion

    p = printHi ,

    p ();

    }
    2

    Beslut hvad callback funktion er passende for programmet. For eksempel sammenligner den følgende kode segmentet enten to heltal eller to tegnstrenge afhængigt af værdien af ​​den tredje argument kaldet "valgmulighed . " Hvis to heltal som sammenlignes , returnerer funktionen en værdi på 1, hvis det første tal er større end den anden. Hvis to tekststrenge sammenlignes , returnerer funktionen en værdi på 1, hvis den første tegnstreng har flere tegn end det andet .

    Int tilbagekald (void * a, void * b , int option ) {

    if ( option == 0 ) {

    int * c = ( int * ) a;

    int * d = ( int * ) b ;

    afkast ( * c> * d)

    } else if ( option == 1 ) {

    char * c = ( char * ) a;

    char * d = ( char * ) b ;

    afkast ( strlen ( c ) > strlen ( d))

    }

    }
    3

    Kald funktionen tilbagekald fra kildekoden . Antag, at en boble - sortering algoritme bliver skrevet af en programmør. Denne algoritme sorterer værdierne på en liste i faldende rækkefølge. Følgende kode segment kalder callback funktion kaldet " funk ", som vil gøre sammenligningen .

    Int bubbleSort ( int * værdier, int len , int ( * funk ) (void * a, void * b , int c )) {

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

    int i, j ;

    p = funk ; < br >

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

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

    hvis (p (& værdier [ ,"I] , og værdier [j ] , 0) ) {

    int t = værdier [ i] ;

    værdier [i ] = værdier [j ]

    værdier [ ,"j] = t;

    }

    }

    }

    }
    4

    Kald funktion, der påberåber sig tilbagekald funktion fra hovedprogrammet , der kræver resultatet af den slags . For boble- sortering eksempel kalder den "vigtigste " funktion boble- sortering funktion med callback funktion er angivet i trin 2. .

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

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

    bubbleSort (a, 5, tilbagekald ),

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

    printf (" % d \\ n" , a [i ])

    }

    } < br >

    Forrige :

    næste :
      Relaterede artikler
    ·Hvordan laver Random Number Codes Only Selv på C + + 
    ·Sådan bruges Scanf Kommando i C + + 
    ·Sådan Link Liste Input Stream på C + + 
    ·Sådan Sammenlign 2 heltal i en funktion Brug C + + 
    ·Sådan kontrolleres en POP3 e-mail med C + + med MFC 
    ·Fordele ved LINQ 
    ·Sådan Skyl Buffer i C + + 
    ·Sådan får C + + til Subtrahere Numbers 
    ·Sådan oprettes en Maven projekt i Galileo 
    ·Sådan bruges en C + + Vector til at gemme data 
      Anbefalede Artikler
    ·Sådan Lær ASP Online 
    ·Hvordan skal tjekkes , hvis en række er et heltal i Vi…
    ·Substring Funktioner i VBS 
    ·Hvordan man laver en Browser Naviger til URL Opført i …
    ·Sådan eksporteres GridView til Excel på VB.NET 
    ·MySQL Java Tutorial 
    ·Hvordan man skriver open source-projekter 
    ·Visual Basic Standards 
    ·Sådan bruges MiKTeX Med Python 
    ·Hvordan man omdirigerer mobilbrugere 
    Copyright © Computer Viden http://www.computerdk.com