Função de retorno de chamada em C

Função de retorno de chamada em C
Um retorno de chamada na linguagem de programação C é uma função orientada a eventos que passa uma função em outra função como um argumento. Simplesmente a função de retorno de chamada é quando uma referência de uma "função 1" é passada como um argumento para "função 2" usando um ponteiro de função. Essa função usa essa referência para chamar "Função 1". Este artigo fornecerá algumas ilustrações sobre o uso de uma função de retorno de chamada na linguagem de programação C

Sintaxe

Para usar a função de retorno de chamada, teremos que declarar e inicializar o ponteiro da função na função principal. Função Declaração/inicialização A sintaxe é definida aqui:

[ReturnType-of-the-CallingFunction] (*[nome do ponteiro]) ([CallingFunction's-Parameters]) = & [CallingFunction-Name];

Após a declaração/inicialização do ponteiro da função, passaremos o ponteiro para a função desejada da seguinte maneira anexada:

[Nome da função desejada] ([qualquer outro parâmetro de função], nome-name);

A assinatura de definição/inicialização da função da função que recebe esse argumento será assim:

[ReturnType] [Nome da função] ([qualquer outro parâmetro de função], [ReturnType-of-Chamiling-Function] (*[Pointer-Name]) ([Funcionário de Calling's-Parameter]))

Por fim, chamar essa função usando o ponteiro passado é exibido aqui:

[Nome do ponteiro] (os parâmetros da função);

A teoria pode ser um pouco confusa. No entanto, a implementação dos exemplos ajudará você a limpar essas confusões.

Exemplo 1:

Em nosso primeiro exemplo, criaremos uma função simples de retorno de chamada. Isso não retorna nada e não leva parâmetros. Para limpar nossos conceitos recém -aprendidos, implementando -os. Tudo o que você precisa fazer é criar um bloco de notas e dar um título de sua escolha. Adicionar .Extensão CPP usada para arquivos de programação C.

Depois que o documento for criado, abra a interface da linha de comando e digite a seguinte consulta anexada para compilar seu código de idioma C usando o compilador GCC.

$ gcc -o [seu nome de arquivo] [seu nome de arquivo].cpp

Agora, digite o comando subsequente para a execução do código.

$ [Seu nome de arquivo].exe

Vamos pular para o código principal. Começamos criando assinaturas de funções no topo, pois precisamos criar duas funções. Um será o retorno de chamada e o outro cuja função está sendo passada para a função de retorno de chamada.

Na função principal, declararemos/inicializaremos nosso ponteiro de função. Enquanto a chamada de função, precisamos passar o ponteiro como um argumento. O código de função principal é apresentado na captura de tela por baixo.

Agora, tudo o que precisamos fazer é preencher nosso retorno de chamada e a outra função. Idêntico ao caminho na imagem apresentada abaixo. O retorno de chamada e outros códigos de função são apresentados na captura de tela abaixo.

Nossas funções não estão executando nada complexo. Para obter a ideia básica, imprimiremos mensagens no console. Para ver como a função de retorno de chamada está funcionando. Executar a instrução que é apresentada na imagem por baixo.

A julgar pela saída, podemos dizer quando funcionamos chamando de chamado do principal. Foi para a "função 1" e imprimindo a mensagem no console. Em seguida, usando o ponteiro da função, "Função 2" é acessado quando as linhas de código em "Função 2" são todas executadas. O controle voltará para a “Função 1”.

Exemplo 2:

Nesse caso, implementaremos as operações simples da calculadora (i.e., Adicione, subtrair, multiplicar e dividir) com a ajuda da função de retorno de chamada do idioma C. Começaremos adicionando assinaturas de funções de operações e a função de retorno de chamada semelhante ao Exemplo 1.

Em seguida, declararemos nosso número inteiro, operação e a variável de ponteiro de função.

Veja a entrada do usuário para que os números inteiros operem e peça ao usuário que escolha a operação desejada para executar neles.

Usando a condição de else-if, faremos um ponteiro de função de operação escolhido pelo usuário para passar para a função de retorno de chamada da calculadora.

Isso é tudo para a função principal, hora de codificar o retorno de chamada e funções de operação. Todas as assinaturas de funções de operação recebem dois argumentos e retornam o resultado da operação como uma saída. Em nossa função de calculadora, imprimiremos o valor retornado da operação chamando a função de operação usando seu ponteiro.

Para todas as funções de operação, vamos codificar para calcular e retornar o resultado dessa operação.

Por fim, é hora de testar nosso código. Executar a instrução que é apresentada na imagem por baixo.

Como você pode ver, o programa está funcionando sem problemas sem erros. Vamos tentar testar outras operações também.

Como você pode ver, nosso programa está executando logicamente correto para todas as operações. Quando um usuário seleciona a operação desejada, esse "se" de sua escolha de operação é selecionado e que o ponteiro da função de operações é passado para a função da calculadora. Usando essa função de calculadora de ponteiro chama o código executável da operação escolhida e, como resultado, recebe a resposta resultante.

Agora vamos testar o quão bem nosso programa reage quando um usuário inserir uma entrada inválida para escolher uma operação.

Como você pode visualizar a partir da imagem em anexo apresentada acima, que nosso programa está funcionando sem problemas.

Conclusão:

Vamos fazer uma visão geral rápida que abordamos neste tutorial, é a teoria da função de retorno de chamada, ponteiro da função, sua sintaxe e implementou poucos exemplos para obter uma melhor compreensão. Espero que este tutorial tenha ajudado você a consertar seus conceitos e a limpar todas as suas consultas sobre funções de retorno de chamada no idioma C.