Estoy estudiando el concepto de punteros de funciones y para ellos he realizado el siguiente código el cual no se compila porque menciona que no está definido la referencia a operatoria. El código es el siguiente:
Saludos.
Código:
#include <stdio.h>
#include <stdlib.h>
int sumar (int a, int b);
int resta (int a, int b);
int operacion (int (*operatoria) (int a, int b), int a, int b);
int main(int argc, char *argv[])
{
int a, b, c, choise;
printf("Ingrese los operandos\n");
scanf("%d %d", &a, &b);
printf("Presione 1 si desea adicionar los operandos y 2 si desea diferenciar los operandos\n");
scanf("%d", &choise);
if(choise==1)
{
c=operatoria ( sumar ,a,b );
}
else
{
c=operatoria (resta ,a,b);
}
printf("Asi que c es: %d\n\n", c);
system("PAUSE");
return 0;
}
int sumar (int a, int b)
{
printf("\nse ejecuto la funcion sumar\n\n");
return (a+b);
}
int resta (int a, int b)
{
printf("\nse ejecuto la funcion sumar\n\n");
return (a-b);
}
int operacion (int (*operatoria) (int a, int b), int a, int b)
{
int c ;
c=(*operatoria)( a, b);
return ( c);
}