ciao senti... non ho ben capito una cosa...

codice:
/* qsort example */
#include <stdio.h>      /* printf */
#include <stdlib.h>     /* qsort */

int values[] = { 40, 10, 100, 90, 20, 25 };

int compare (const void * a, const void * b)
{
  return ( *(int*)a - *(int*)b );
}

int main ()
{
  int n;
  qsort (values, 6, sizeof(int), compare);
  for (n=0; n<6; n++)
     printf ("%d ",values[n]);
  return 0;
}
allora il return che fa dentro l'int compare non mi è chiaro perchè lo fa? e poi nel main c'è scritto: qsort (values, 6, sizeof(int), compare); questa è la dicitura, ma se io non volessi fare una funzione per comparare? cioè da quanto mi è chiaro devo fare una funziona per forza?