Il tuo esempio e' sbagliato, per un sacco di motivi:
int *conversione(char x);
non hai dichiarato un puntatore a funzione, ma una funzione che ha un parametro di tipo char e ritorna un
puntatore ad un intero.
Per avere il valore ASCII di un
char basta convertirlo in
int senza nessuna altra strana operazione.
Comunque, un esempio decisamente migliore e' questo:
#include <stdio.h>
float add(float x, float y) { return x+y; }
float mul(float x, float y) { return x*y; }
float sq2(float x, float y) { return x*x + 2*x*y + y*y; }
void printfun(const char* op, float (*fun)(float, float), float x, float y)
{
printf("%f %s %f -> %f\n", x, op, y, (*fun)(x,y));
}
int main()
{
printfun("add", add, 2, 3);
printfun("mul", mul, 2, 3);
printfun("sq2", sq2, 2, 3);
return 0;
}
Nota la posizione delle parentesi!!!!!