Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/10/2012, 19:00
m4rc05
 
Fecha de Ingreso: julio-2009
Mensajes: 36
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta EN C -Declaración de función extraña, puntero a función.

Es posible que alguien me pueda explicar la declaración comentada en el siguiente código, Gracias.

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main(int argc,char *argv[]){
  4. int i,j;
  5. char eleccion;
  6. int proceso (int (*)(int,int)); //prototipo... de la función que no entiendo
  7. int multip (int,int);
  8. int divicion (int,int);
  9. printf("Elige M(6*3) o D (6/3):");
  10. scanf ("%c",&eleccion);
  11. if (eleccion=='M') i=proceso (multip);
  12. else i=proceso (divicion);
  13. printf ("El resultado es: %d\n",i);
  14. return 0;
  15. }
  16.  
  17. int proceso (pf) int (*pf)(int,int);{ /*El punto y coma junto con la falta de un paréntesis global es lo que mas me confunde. y no veo a simple vista la igualdad del prototipo D:*/
  18. int a=6,b=3,c;
  19. c=(*pf)(a,b);
  20. return c;
  21. }
  22. int multip(int a,int b){
  23. return(a*b);
  24. }
  25. int divicion(int a,int b){
  26. return (a/b);
  27. }

Última edición por m4rc05; 01/10/2012 a las 21:01