#include <stdio.h>

//------------------------------------

void f1() { puts("I'm f1."); }
int f2(int a, int b) { return a + b; }
char f3() { return 'a'; }

//------------------------------------

int main() {
    void *fun_array[3] = { &f1, &f2, &f3 };
    ((void (*)())fun_array[0])();
    printf("%i\n", ((int (*)(int, int))fun_array[1])(3, 5));
    printf("%c\n", ((char (*)())fun_array[2])());
    return 0;
}
