#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;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKdm9pZCBmMSgpIHsgcHV0cygiSSdtIGYxLiIpOyB9CmludCBmMihpbnQgYSwgaW50IGIpIHsgcmV0dXJuIGEgKyBiOyB9CmNoYXIgZjMoKSB7IHJldHVybiAnYSc7IH0KCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppbnQgbWFpbigpIHsKICAgIHZvaWQgKmZ1bl9hcnJheVszXSA9IHsgJmYxLCAmZjIsICZmMyB9OwogICAgKCh2b2lkICgqKSgpKWZ1bl9hcnJheVswXSkoKTsKICAgIHByaW50ZigiJWlcbiIsICgoaW50ICgqKShpbnQsIGludCkpZnVuX2FycmF5WzFdKSgzLCA1KSk7CiAgICBwcmludGYoIiVjXG4iLCAoKGNoYXIgKCopKCkpZnVuX2FycmF5WzJdKSgpKTsKICAgIHJldHVybiAwOwp9Cg==