Apuntadores

Solo disponible en BuenasTareas
  • Páginas : 3 (617 palabras )
  • Descarga(s) : 0
  • Publicado : 21 de octubre de 2010
Leer documento completo
Vista previa del texto
El siguiente parametro aparece en el encabezado de la funcion de bubble:

Int ( *compare ) ( int, int)

Esto le dice a bubble que espere un parametro que es un apuntador a una funcion querecibe dos parametros enteros y devuelve un resulatado entero. Se necesitan paréntesis alrededor de *compare debido a que * tiene menor precedencia que el paréntesis que encierra los parámetros de lafuncion. Si no se hubieran incluido los paréntesis, la declaración habria sido
Int *compare ( int, int)
Que declara una funcion que recibe dos enteros como parametros y le devuelve un apuntador a unentero. El parámetro correspondiente del prototipo de funcion de bubble es:

Int ( * ) ( int, int )

Observe que solo se han incluido los tipos pero con fines de documentacion, el programadorpuede incluir nombres que ignorara el compilador.

La funcion que se le pasa a bubble es llamada en una instrucción if como sigue

If (( *compare) (work[count], work[count+1] ) )

Asi como sedesreferencia un apuntador a una variable para acceder al valor de esta, se desreferencian los apuntadores a funciones para ejecutar dichas funciones. La llamada a la funcion podria haberse hecho sindesreferenciar al apuntador, como en:

If (*compare(work[count], work [count+1] ) )

Que utiliza el apuntador directamente como nombre de funcion. Preferimos el primer metodo donde la llamada auna funcion es a traves de un apuntador, pues explícitamente ilustra que compare es un apuntador a una funcion que se desreferencia para llamar la funcion. El segundo metodo para llamar a la funcion atravez de un apuntador da la apariencia de que compare de hecho es una funcion. Esto puede confundir a algun usuario del programa que quisiera ver la definición de la funcion compare y descubrieraque no se defi nkio en ninguna parte del archivo.
Uno de los usos de los apuntadores a funciones es en los sistemas operados por menus. Al usuario se le solicita desde un menu que de una opcion (por...
tracking img