Salve ragazzi, cortesemente qualcuno può spiegarmi come passare una funzione come parametro ad un'altra funzione?

Ecco le funzioni:
codice:
/* Funzione f_campionata */
void f_campionata(int a, int b, int n){
	float x, passo;
	float values[N];
	int i;

	x=a;
	passo=abs(b-a)/float(n-1);

	for( i=0; i<n; i++ ){
		values[i]=f(x);
		x+=passo;
	}
}



/* Funzione f */
float f(int x){

	/* Se l'espressione della f è: x^2+x-1 */
	return (x*x+x-1);
}
Praticamente la funzione "float f(int x)", dev'essere passata alla funzione "f_campionata";
Se avete bisogno di altre informazioni, scrivete.

Grazie anticipatamente.