Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void f_1 (void) { printf ("1"); }
- void f_2 (void) { printf ("2"); }
- void f_3 (void) { printf ("3"); }
- void f_4 (void) { printf ("4"); }
- void binarno_iskanje (int a)
- {
- if (a == 2)
- f_2 ();
- else if (a > 2)
- goto vecje_od_2;
- if (a == 1)
- f_1 ();
- else goto __default;
- vecje_od_2:
- if (a == 3)
- f_3 ();
- else if (a == 4)
- f_4 ();
- __default:
- return;
- }
- void jump_table (int a)
- {
- const void *__tabela[] = {&&__case_1, &&__case_2, &&__case_3, &&__case_4};
- int a_1 = a - 1;
- if (a_1 > -1 && a_1 < 4)
- goto * __tabela [a_1];
- else return;
- __case_1:
- f_1 ();
- return;
- __case_2:
- f_2 ();
- return;
- __case_3:
- f_3 ();
- return;
- __case_4:
- f_4 ();
- return;
- }
- int main (void)
- {
- int i;
- for (i = 1; i != 5; i++) {
- binarno_iskanje (i);
- printf (", ");
- jump_table (i);
- printf ("\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement