Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> C /C + + Programming >> Content
Hoe te Terugbellen Functie in C Gebruik
Terugbellen functies zijn geavanceerde functies in C -programmeertaal . Een callback functie helpt bij het ​​isoleren van de uitvoering van een functie uit de bibliotheek van de beller van de bibliotheek . Door dat te doen , de bibliotheek kan nu zelfstandig zonder enige kennis van de toepassing die gaat naar de functie bibliotheek noemen ontwikkeld . Dit helpt bij het genereren van compacte code . Verder , het helpt ook bij parallelle ontwikkeling , als de persoon die het schrijven van de bibliotheek hoeft niet te wachten op de persoon die het schrijven van de aanvraag , en vice versa . Wat je nodig hebt
AC compiler zoals gcc
editor zoals emacs of " vi " om het programma
schrijven Toon Meer Aanwijzingen
callbackfuncties
1

Leer om C -code te schrijven met de functie pointers . Functie pointers zijn als elke andere pointers in C , behalve dat zij in het bezit van het adres van een functie . De code segment hieronder is een eenvoudig voorbeeld met de functie pointers .

# Include

int printHello
( ) {

printf ( " Hallo \\ n " ) ;

}

int printHi ( ) {

printf ( " hallo \\ n " )
;

}

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

//Declareer een functie pointer

int ( * p ) (void ) op ;

//Point de functie pointer aan het adres van een functie

p = printHello ;

p
( ) ;

//Point de functie pointer
om het adres van een andere functie

p = printHi ;

p ( ) op ;

}
2

Beslis over wat callback functie is geschikt voor het programma . Bijvoorbeeld , de volgende code segment vergelijkt ofwel twee integers of twee tekenreeksen afhankelijk van de waarde van het derde argument genaamd " optie . " Indien twee getallen worden vergeleken , de functie een waarde van 1 als het eerste getal groter is dan de andere . Als twee tekenreeksen worden vergeleken , retourneert de functie een waarde van 1 als de eerste tekenreeks heeft meer tekens dan de tweede .

Int callback
(void * a , leegte * b , int optie ) {

als ( optie == 0 ) {

int * c = ( int * ) a ;

int * d = ( int * ) b ;

terugkeer
( * c > * d ) ;

} anders als ( optie == 1 ) {

char c = ( char * ) a * ;

char * d = ( char * ) b ;

terugkeer
( strlen ( c ) > strlen ( d ) ) ;

}

}
3

Roep de callback functie uit de broncode . Aannemen dat een bubble - sort -algoritme wordt geschreven door een programmeur . Dit algoritme sorteert de waarden in een lijst in afnemende volgorde . De volgende code segment noemt de callback functie genaamd " functie " , die de vergelijking zal doen .

Int bubbleSort ( int * waarden
, int len , int ( * func ) (void * a , leegte * b , int c ) ) {

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

int i , j ;

p = functie ; < br >

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

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

if ( p ( & waarden [ ,"i ] , en waarden [ j ] , 0 ) ) {

int t = waarden [ i ]
;

waarden
[ i ] = waarden [ j ] ;

waarden
[ ,"j ] = t ;

}


}

}

}
4

Roep de functie die de callback beroept functie van het hoofdprogramma dat het resultaat van het soort vereist . Voor de bubble - sort bijvoorbeeld de "main " functie roept de bubble - sorteerfunctie met de callback functie gespecificeerd in stap 2 .

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

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 ] ) ;

}

} < br >

Previous: Next:
  C /C + + Programming
·Om te lezen hoe een willekeuri…
·Boost Multithreading Tutorial 
·Temperatuur Converter in C + +…
·Hoe te Overload de Opdracht Op…
·Hoe je het berekenen tool voor…
·Hoe E-mail Gecodeerd met lezen…
·Hoe maak je een C-programma te…
·Hoe kan ik een string omzetten…
·Hoe kan ik een string array in…
  Related Articles
Hoe maak je een Combo Box Maak in Visual…
Hoe maak je een Check Box Maak in Visual…
Hoe maak je een tekstvak maken in Visual…
Hoe maak je een optie Box in Visual Basi…
Hoe maak je een schijf keuzelijst in Vis…
Hoe kan ik een keuzelijst maken in Visua…
Hoe kan ik een Picture Box Maak in Visua…
Hoe een bestand keuzelijst Maak in Visua…
Hoe kan ik een afbeelding Box Maak in Vi…
  Programmering Articles
·Hoe te wijzigen Screen Savers Met VB Sof…
·Hoe u rapporten in VB Toegang 
·Hoe je eBooks behulp Kopieer Python 
·Hoe te Program Keuzes in een batchbestan…
·Hoe om tekst te beperken in HTML 
·Hoe te Spaces in DOS Substrings Vervang 
·Hoe maak je een CSS- klasse Attribute Me…
·Hoe maak je een formulier met jQuery Sch…
·Hoe om duplicaten te vinden in Bestand g…
Copyright © Computer Kennis http://www.nldit.com