Curso de C

Ponteiros para Funções

O C permite que acessemos variáveis e funções através de ponteiros! Esta é mais uma característica que mostra a força da linguagem de programação C. Podemos então fazer coisas como, por exemplo, passar uma função como argumento para outra função. Um ponteiro para uma função tem a seguinte declaração:
tipo_de_retorno (*nome_do_ponteiro)();

ou
tipo_de_retorno (*nome_do_ponteiro)(declaração_de_parâmetros);

Veja que não é obrigatório se declarar os parâmetros da função. Veja um exemplo do uso de ponteiros para funções:

#include <stdio.h>
#include <string.h>
void PrintString (char *str,int (*func)());
main (void)
{
char String [20]="Curso de C.";
int (*p)();
p=puts;
PrintString (String,p);
return 0;
}
void PrintString (char *str,int (*func)())
{
(*func)(str);
}

No programa acima, a função PrintString() usa uma função qualquer func para imprimir a string na tela. O programador pode então fornecer não só a string mas também a função que será usada para imprimí-la. No main() vemos como podemos atribuir, ao ponteiro para funções p, o endereço da função puts() do C.

Página Anterior Índice da Aula Próxima Página


Curso de C do CPDEE/UFMG - 1996 - 1999