Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> C /C + + Programming >> Content
    Hvordan bruke tilbakeringing funksjon i C
    tilbakeringing funksjoner er avanserte funksjoner i C programmeringsspråk . En tilbakeringing funksjonen hjelper med å isolere gjennomføringen av et bibliotek funksjon fra den som ringer på biblioteket . Ved å gjøre det, kan biblioteket nå bli utviklet uavhengig uten noen kunnskap om programmet som kommer til å ringe biblioteket funksjon . Dette hjelper på å generere kompakt kode . Videre hjelper det også i parallell utvikling , som den personen du skriver biblioteket trenger ikke vente på den personen å skrive søknaden , og vice versa . Du trenger
    AC kompilator som gcc
    Editor som emacs eller " vi" til å skrive programmet
    Vis flere instruksjoner
    tilbakeringing funksjoner
    1

    Lær å skrive C-kode med funksjonspekere . Funksjonspekere er som alle andre pekere i C , bortsett fra at de holder adressen til en funksjon . Kodesegmentet nedenfor er et enkelt eksempel med funksjonspekere .

    # Include

    int printHello ( ) {

    printf ( "Hello \\ n" ) ;

    }

    int printHi ( ) {

    printf ( "Hei \\ n ");

    }

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

    //Erklærer en funksjon peker

    int ( * p ) (void ) ;

    //Point funksjonen pekeren til adressen til en funksjon

    p = printHello ;

    p ();

    //Rett funksjon peker til adressen til en annen funksjon

    p = printHi ;

    p ();

    }
    2

    Bestem deg for hva tilbakeringing funksjonen er egnet for programmet. For eksempel sammenligner den følgende kode segment enten to heltall eller to tegnstrenger avhengig av verdien av den tredje argumentet kalt "alternativet. " Hvis to hele tall som skal sammenlignes , returnerer funksjonen en verdi på 1 hvis det første tallet er større enn den andre. Hvis to tegn strengene sammenliknes , returnerer funksjonen verdien 1 hvis det første tegnet strengen har flere tegn enn den andre .

    Int tilbakeringing (void * en , ugyldige * b , int valg) {

    if (valg == 0 ) {

    int * c = ( int * ) a;

    int * d = ( int * ) b;

    retur ( * c > * d ) ;

    } else if (valg == 1 ) {

    røye * c = ( char * ) a;

    char * d = ( char * ) b;

    avkastning ( strlen ( c ) > strlen ( d ));

    }

    }
    3

    Ring tilbakekallsfunksjon fra kildekoden . Anta at en boble -sort algoritmen blir skrevet av en programmerer . Denne algoritmen sorterer verdiene i en liste i synkende rekkefølge. Følgende kode segmentet kaller tilbakeringing funksjon som kalles " funk " som vil gjøre sammenligningen .

    Int bubbleSort ( int * verdier , int len , int ( * funk ) (void * en , ugyldige * b , int c ) ) {

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

    int i, j ;

    p = funk ;

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

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

    if ( p ( og verdier [ ,"i] , og verdier [ j ] , 0 ) ) {

    int t = Verdier [ i] ;

    verdier [ i] = verdier [ j ];

    verdier [ ,"j ] = t ;

    }

    }

    }

    }
    4

    Ring funksjonen som påkaller tilbakeringing funksjon fra hovedprogrammet som krever et resultat av den slags . For boblen -sort eksempel kaller "main "-funksjonen boble- sorteringsfunksjonen med tilbakekallsfunksjon spesifisert i trinn to .

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

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

    bubbleSort ( a, 5 , tilbakeringing ) ;

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

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

    }

    }

    früher :

     Weiter:
      Relatert Artike
    ·Slik viser GridView på en egen side 
    ·Hvordan bruke den viktigste funksjonen i C + + 
    ·Hvordan dynamisk tildele en array ved hjelp av klasse i…
    ·Hvordan konvertere en streng til en figur i C + + 
    ·Hvordan lage en IRC Spybot 
    ·Hvordan bruke Void pekere i C 
    ·Hvordan bruke StrLen Command i C + + 
    ·Hvordan skrive en linje Switch Tastkombinasjon 
    ·Hvordan å kompilere C i Ubuntu 
    ·Hvordan koble en Progress Bar til IO.Stream 
      Anbefalte artikler
    ·Hvordan få Antall rader i CSV PHP 
    ·Hvordan erstatte store bokstaver med små bokstaver i P…
    ·Slik konverterer sekunder Siden Epoch til Date 
    ·Definisjon av feltet i Visual Basic 6.0 
    ·Hvordan beregne Coding for Java Boxes 
    ·Hvordan legge til en DataRelation 
    ·Hvordan lage nye linjer i Python 
    ·Hvordan bygge en elektronisk Nedtelling 
    ·Slik importerer data i Access Med VBA 
    ·Hvordan endre en linje i et PHP File 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/