Programação  
 
Conhecimento computador >> Programação >> C /C + + programação >> 
Como utilizar a função de chamada de retorno em C
funções de retorno de chamada são recursos avançados em linguagem de programação C . A função de retorno ajuda a isolar a implementação de uma função de biblioteca do chamador da biblioteca. Ao fazer isso , a biblioteca agora pode ser desenvolvido de forma independente , sem qualquer conhecimento da aplicação que vai chamar a função da biblioteca. Isso ajuda na geração de código compacto. Além disso, ele também ajuda no desenvolvimento paralelo , como a pessoa que escreve a biblioteca não precisa esperar a pessoa a escrever a aplicação , e vice- versa. Coisas que você precisa
compilador AC como gcc
editor como o emacs ou "vi" para escrever o programa
Show Mais instruções
funções de callback
1

Aprenda a escrever código C com ponteiros de função . Ponteiros de função são como quaisquer outros ponteiros em C , exceto que eles têm o endereço de uma função . O segmento de código a seguir é um exemplo simples, com ponteiros de função .

# Include int

imprimeAlo () {

printf (" Olá \\ n" );

}

int printHi () {

printf (" Olá \\ n"); }


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

//Declara um ponteiro de função

int ( * p) (void);

//Aponte o ponteiro de função para o endereço de uma função

p = imprimeAlo ;

p ();

//Aponte o ponteiro de função para o endereço de outra função

p = printHi ;

p (); }


2

Decidir sobre qual a função de retorno de chamada é apropriado para o programa. Por exemplo , o segmento de código seguinte compara quer dois inteiros ou duas cadeias de caracteres , dependendo do valor do terceiro argumento chamado " opção ". Se dois inteiros são comparados, a função retorna um valor de 1 se o primeiro número é maior do que o outro . Se duas cadeias de caracteres são comparados , a função retorna um valor de 1 se a primeira seqüência de caracteres tem mais caracteres do que o segundo

int callback. (Void * a, void * b, opção int) {

if ( opção == 0 ) {

int * c = (int *) a;

int * d = (int *) b;

retorno (* c> * d);

} else if ( opção == 1) {

char * c = (char * ) a;

char * d = ( char *) b;

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


}
3

Chame a função de retorno de chamada a partir do código fonte. Suponha que um algoritmo bubble -sort está sendo escrito por um programador. Este algoritmo classifica os valores em uma lista , em ordem decrescente . O seguinte segmento de código chama a função callback chamada " função ", que vai fazer a comparação .

Int BubbleSort ( int * valores , 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 < i, j + +) {

if ( p ( e valores [ ,"i], e valores [j] , 0)) {

int t = valores [ i ];

valores [i] = valores [ j ];

valores [ ,"j] = t;

}

}

}

}
4

Chame a função que chama o callback funcionar a partir do programa principal que requer o resultado do tipo. Para o exemplo da bolha - tipo , a função "main" chama a função bubble -sort com a função de retorno de chamada especificado na Etapa 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 ]); }


}

Anterior :

Próximo : No
  Os artigos relacionados
·Como usar variáveis ​​globais para a programação C 
·Tutorial Processor celular 
·Como limpar tela antes de um novo loop em um CPP 
·Como descobrir se uma linha ou coluna é destaque em Da…
·Como converter radianos em graus em Linguagem C + + em …
·Como criar Projetos Utilizando programação C 
·Como armazenar uma frase em uma matriz no C + + 
·Como usar o Xcode 
·Como fazer um jogo de RPG em C + + 
·CSharp Controles para DataGridView 
  Artigos em destaque
·Como link para um arquivo CPP 
·Como tirar uma String de um arquivo de entrada e revert…
·Como obter um número par no CPP 
·Como fazer um padrão em C + + Código 
·Como ocultar um botão no Visual C 
·Apue.H não encontrado no Ubuntu 
·Diferença entre fgetc e getc 
·Como usar modelos de estruturas em C 
·Como usar OLE Com o Visual C 
·Como usar Breadcrumbs em Masterpage 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados