Ponteiro para uma Função

CBeginner
Pratique Agora

Introdução

Um ponteiro para uma função é uma forma de armazenar o endereço de memória de uma função, assim como uma variável armazena o endereço de memória de um valor. Quando uma função é chamada através de um ponteiro, ela é chamada de ponteiro para uma função.

Neste laboratório, escreveremos um programa em C para demonstrar como usar um ponteiro para uma função.

Declarar e definir a função a ser apontada

Nesta etapa, declararemos e definiremos uma função que recebe dois argumentos inteiros e não retorna nada.

#include<stdio.h>

void func(int a, int b)
{
    printf("\n\n a = %d \n", a);
    printf("\n\n b = %d \n", b);
}

Declarar um ponteiro para uma função

Nesta etapa, declararemos um ponteiro para a função criada na etapa 1. A sintaxe para declarar um ponteiro para uma função é semelhante à de declarar um ponteiro para uma variável, mas especifica os tipos de parâmetros e o tipo de retorno da função para a qual se está apontando.

// function pointer
void (*fptr)(int , int);

Armazenar o endereço da função no ponteiro

Nesta etapa, armazenaremos o endereço da função criada na etapa 1 no ponteiro criado na etapa 2.

// assign address to function pointer
fptr = func;

Chamar a função usando o ponteiro

Nesta etapa, chamaremos a função que criamos na etapa 1 usando o ponteiro para a função criado na etapa 2.

// function calling
func(2,3);
fptr(2,3);  // calling a function referring to pointer to a function

Escrever o código completo

Abra o arquivo main.c no diretório ~/project/.

#include<stdio.h>

void func(int a, int b)
{
    printf("\n\n a = %d \n", a);
    printf("\n\n b = %d \n", b);
}

int main()
{
    printf("\n\n\t\tLabEx - Best place to learn\n\n\n");

    // function pointer
    void (*fptr)(int , int);

    // assign address to function pointer
    fptr = func;

    // function calling
    func(2,3);
    fptr(2,3);  // calling a function referring to pointer to a function

    printf("\n\n\t\t\tCoding is Fun !\n\n\n");
    return 0;
}

Compilar e executar o código

Para compilar o código, abra o terminal e digite o seguinte comando:

gcc main.c -o main

Para executar o programa, digite o seguinte comando:

./main

Resumo

Neste laboratório, aprendemos como usar um ponteiro para uma função em um programa C. Vimos como declarar e definir a função a ser apontada, como declarar um ponteiro para uma função, como armazenar o endereço da função no ponteiro e como chamar a função usando o ponteiro. O uso de ponteiros para uma função pode tornar programas complexos mais fáceis de escrever e entender.