Um ponteiro de função é uma variável de ponteiro C normal, mas o que aponta é uma função. Isso permite programas sofisticados e dinâmicos que chamarão de diferentes funções em diferentes circunstâncias dinamicamente com base em quais sempre funcionar o ponteiro está apontando naquele momento. O programador cria lógica para alterar o valor do ponteiro para várias funções por diferentes razões, e as chamadas que sempre são apontadas pelo ponteiro. Vamos demonstrar isso com alguns exemplos.
Visão geral técnica
Vamos cobrir a sintaxe dos ponteiros da função. Isso nos informará como podemos fazer com que o ponteiro aponte para uma função; Em outras palavras, como podemos armazenar o endereço da função usando o ponteiro. Também aprenderemos a declaração e a referência do ponteiro da função e como os ponteiros da função podem ser usados para fazer as chamadas de função para a função do ponteiro.
Sintaxe
A sintaxe geral para a declaração do ponteiro da função é a seguinte:
$ Tipo de retorno da função (* Nome do ponteiro) (Tipo de dados AR_1, Tipo de dados Arg_2)O método da declaração do ponteiro da função é o mesmo que a declaração usual da função; A única diferença no ponteiro da função é quando declaramos o nome do ponteiro da função, usamos o símbolo * e a variável está incluída entre parênteses, diferentemente da função normal, onde o nome é declarado sem o uso de qualquer símbolo com ele. Vamos declarar um ponteiro da função fictícia com a ajuda de algum exemplo hipotético; Primeiro, declare qualquer função com o método usual, e.g., int func (int, int). Após a declaração de função functão, Agora vamos declarar um ponteiro de função como int (*funcptr) (int, int);. Aqui está a sintaxe geral e a atribuição de uma função a um ponteiro de função:
// Declaração da funçãoExemplo # 01
Neste exemplo, criaremos uma função chamada quadrado com 2 parâmetros para LEN e cálculo de largura de um retângulo. [Len * largura = área]. Em seguida, declaramos um ponteiro de função e atribuímos o endereço do quadrado função para o ponteiro da função chamado sp. Depois de receber entradas dinâmicas do usuário, chamamos a função usando o ponteiro da função para fazer a execução da chamada de função.
No corpo da função, simplesmente levaremos a multiplicação de ambas as variáveis Len e largura Para calcular o área do retângulo e saia da função retornando esta área. A implementação dos exemplos é mostrada no seguinte snippet:
#incluirDamos a mesma entrada do usuário para as variáveis L e W como "5", pois ambas representam o comprimento e a largura do quadrado, que são iguais em valor. A saída retornou o quadrado do valor 5 como a área do quadrado.
Exemplo # 02
Com a ajuda deste exemplo, criaremos uma variedade de ponteiros de função, onde todos os elementos da matriz estarão armazenando a função de ponteiro para diferentes funções. Por exemplo, declararemos as duas funções normais de subtração e adição com o número inteiro de retorno com dois parâmetros de função com o tipo de dados inteiro. Em seguida, declararemos uma variedade de ponteiros de função e depois inicializaremos os dois membros da matriz com nossas duas funções declaradas para adição e subtração. Em seguida, usaremos a matriz de ponteiro da função com o índice do ponteiro da função da matriz, e.g., "Arr [eu]".
As funções de adição e subtração usarão os valores de leitura de variáveis inicializadas a e b. Em seguida, exibiremos esses resultados chamando o método printf (). O snippet a seguir mostra o programa completo para este exemplo:
#incluirConclusão
O guia contém um exemplo básico e explicação dos ponteiros de função na linguagem C. Nota para alterar a sintaxe à medida que você altera a quantidade de parâmetros e o tipo de dados, bem como se você alterar o tipo de retorno da função que o ponteiro da função precisará alterar, respectivamente.