-
-
Save kuenishi/524199 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define OPTION_A (1) | |
#define OPTION_B (2) | |
#define OPTION_C (3) | |
#define OPTION_D (4) | |
#define OPTION_E (5) | |
void do_a(int args, char** argv){} | |
void do_b(int args, char** argv){} | |
void do_c(int args, char** argv){} | |
void do_d(int args, char** argv){} | |
void do_e(int args, char** argv){} | |
void some_error(int args, char** argv){} | |
void exec_command( int cmd, int args, char** argv ){ | |
switch(cmd){ | |
case OPTION_A: do_a(args, argv); break; | |
case OPTION_B: do_b(args, argv); break; | |
case OPTION_C: do_c(args, argv); break; | |
case OPTION_D: do_d(args, argv); break; | |
case OPTION_E: do_e(args, argv); break; | |
default: some_error(args, argv); break; | |
} | |
} | |
typedef void(*dispatch_t)(int, char**); | |
static dispatch_t d[6]={ 0, do_a, do_b, do_c, do_d, do_e }; | |
void exec_command2( int cmd, int args, char** argv ){ | |
d[cmd](args, argv); | |
} | |
int main(int args, char** argv){ | |
int i; | |
int N = 1024 * 1024 * 256; | |
for(i=0; i<N; ++i){ | |
exec_command2(6, args, argv); | |
//exec_command(6, args, argv); | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment