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.
Curso de C do CPDEE/UFMG - 1996 - 1999