funciones
¡Esta es una revisión vieja del documento!
Punteros a funciones
No existen variables de tipo “función”, pero es posible tener una variable que es un puntero a una función. Esto es especialmente útil como parámetros para funciones. El siguiente es un ejemplo de un función de ordenamiento genérico, es decir permite ordenar objetos de acuerdo a un criterio definido por una función que se se recibe como parámetro:
<code>
/* ordena datos de cualquier tipo usando Quicksort */ void swap(void *v[], int i, int j) { void *aux; aux=v[i]; v[i]=v[j]; v[j]=aux; } void qsort(void *a[], int left, int right, int (*compare)(void *, void *)) { int i, last; if(left>=right) return; swap(a, left, (left+right)/2); last=left; /* +--+-----------+--------+--------------+ | |///////////|\\\\\\\\| | +--+-----------+--------+--------------+ left last i right */ for(i=left+1; i<=right; ++i) if((*compare)(a[i], a[left])<0) swap(a, ++last, i); swap(a, left, last); qsort(a, left, last-1, compare); qsort(a, last+1, right, compare); }
funciones.1346026149.txt.gz · Última modificación: 2012/08/27 00:09 por lmateu