#include #include typedef int (*foo_t)(int); int foo_dis1(int x, unsigned s); int foo_dis2(int x, unsigned s); int foo_btree(int x, unsigned s); int foo_btree1(int x, unsigned s); extern const foo_t foos[]; #define N 100000000 int main(int argc, char *argv[]) { if (argc != 3) { fprintf(stderr,"Usage: %s \n",argv[0]); fprintf(stderr," dispatch method: 0=indirect call; 1=binary search,\n\ 2=bounds-check indirect call, 3=b-tree-like 2-level; 4=b-tree-like 1-level\n"); exit (1); } char dispatch = argv[1][0]; int function = atoi(argv[2]); int x=1; switch (dispatch) { case '0': for (long i=0; i