Ciao a tutti!!!

Volevo un chiarimento, è possibile, in C, dichiarare un vettore di puntatori a funzioni che però hanno prototipi diversi?

Mi spiego meglio ad esempio se ho queste funzioni:
codice:
void f1(int);
void f2(int);
void f3(int);
posso creare un vettore del tipo:
codice:
void (*f[3])(int);
se invece avessi funzioni del tipo:
codice:
int f1(int, int);
void f2(int, int *);
float *f3(float);
come potrei fare? o è proprio impossibile da realizzare?

Grazie a tutti anticipatamente.