In realtà non serve nemmeno uno statement "switch"
basta creare le N funzioni, tutte con la stessa "firma"
creare un array di puntatori a funzione
eseguire la funzione puntata dal puntatore indicato dall'indice
magia, lavoro fatto....
per esempio, scritto al volo qui, non necessariamente tutto giusto
// le funzioni
void f1(){....
void f2(){...
// e via così....
// l'array di puntatori a funzione
typedef void(* fpunt)();
fpunt elenco[]=f1,f2,f3....;
// e poi quando si conosce l'indice basta "mandare in esecuzione" la funzione
* elenco[indice]();
// questa riga è la "vera" sostituta in C del "on X gosub ...." del vecchio basic