6.9.- Paso de funciones como parámetros


Toda función tiene asociada una dirección de inicio de código, la cual puede pasarse como parámetro en la invocación a otra función, como se muestra en el listado 6.13.

 #include <iostream.h>
 #include <string.h>                                     
 #include <conio.h>

 int cmpcad(char*, char*);
 void compara(char*, char*, int(*)(char*, char*));
                                                               
  void main()                                                  
  {
    char cadx[80], cady[80];

    clrscr();
    gotoxy(10,5);
    cout << "ESCRIBA UNA CADENA : " ; cin>> cadx;
    gotoxy(10,7);
    cout << "ESCRIBA OTRA CADENA : " ; cin>> cady;
    gotoxy(10,9);
    compara(cadx, cady, cmpcad);
    gotoxy(1,24);
  }
  void compara(char *cad1, char *cad2,
               int (*cmpcad)(char*, char*))
  {
    if(!(*cmpcad)(cad1,cad2))
       cout << "LAS CADENAS SON IGUALES"; else cout << "LAS CADENAS SON DISTINTAS"; } int cmpcad(char *x, char *y) { return(strcmp(x,y)); } 

Listado 6.13.- Paso de apuntadores como parámetros a funciones.

En el listado 6.13, la expresión :

int(*cmpcad)(char*, char*)

establece que cmpcad es un apuntador a una función, la cual devuelve un valor de tipo entero .

Página anterior Página siguiente