quinta-feira, 15 de maio de 2014

[Programação em C] - Ponteiros para funções

Olá pessoal, nesse post voltamos a programação em C com a utilização de ponteiros. Ponteiros são extremamente úteis nessa linguagem e por isso é importantíssimo ter um certo domínio sobre esse assunto.

Irei abordar especificamente ponteiros para funções. Para demonstrar isso utilizarei um exemplo passando uma função como parâmetro para outra função.

O exemplo é bem simples para um melhor entendimento. Temos quatro funções. A função "get_greater" recebe dois números inteiros e retorna o maior dentre esses números. A função "get_less" recebe também dois números inteiros, mas retorna o menor dentre esses números. Já a função "calculate" recebe dois números inteiros e uma função. Eu escolhi o nome "func", mas você pode escolher qual nome quiser, só não esqueça do "*" que indica que se trata de um ponteiro para função.

Você já deve ter utilizado funções que recebem uma outra função como parâmetro, é o caso da função qsort. Vamos ao código do nosso exemplo:


Perceba que não há mistérios. No primeiro "printf" (linha 45) é passada a função "get_greater" como parâmetro para a função "calculate". Já na linha 49 é passada a função "get_less" como parâmetro para a função "calculate".

A função "calculate" retorna o resultado retornado pela função que ela recebe como parâmetro.

É muito comum o uso de ponteiros para funções para permitir que uma função seja passada como parâmetro para uma outra função.

Quaisquer dúvidas deixem nos comentários, até a próxima.!


Nenhum comentário: