- 1º argumento: um ponteiro para uma função que recebe 2 argumentos inteiros;
- 2º argumento: um inteiro;
- 3º argumento: um inteiro;
A função desejada para ser executada é passada no 1º argumento. Os outros argumentos são repassados para a função que será executada.
#include <stdio.h>
// declaração da assinatura da função a ser passada como argumento para
// outra função
int (*f) (int, int);
int somar(int a, int b){
return a+b;
}
int subtrair(int a, int b){
return a-b;
}
int opera(int (*g) (int, int), int a, int b){
return g(a, b);
}
int main(){
printf( "\nsoma: %d\n", opera(somar, 25, 30 ));
printf( "\nsubtração: %d\n", opera(subtrair, 25, 30 ));
f = somar;
printf( "\noutra soma: %d\n", opera(f, 25, 230 ));
f = subtrair;
printf( "\noutra subtração: %d\n", opera(f, 25, 230 )
return 0;
}
Para testar, foi usado o site ideone.com