language: C (gcc-4.7.2)
date: 383 days 18 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
#include <stdbool.h>
 
void f0(){printf("do f0\n");}
void f1(){printf("do f1\n");}
void f2(){printf("do f2\n");}
void f3(){printf("do f3\n");}
void f4(){printf("do f4\n");}
void f5(){printf("do f5\n");}
void f6(){printf("do f6\n");}
void f7(){printf("do f7\n");}
typedef void (*pfn)(void);
 
 
void foo(bool a,bool b,bool c)
{
    static pfn afns[]={&f0,&f1,&f2,&f3,&f4,&f5,&f6,&f7};
    afns[(c | b << 1 | a << 2)]();
}
 
int main()
{
    int a,b,c;
    for (a=0; a<=1; a++)
        for (b=0; b<=1; b++)
            for (c=0; c<=1; c++)
            {
                printf("%d%d%d:",a,b,c);    
                foo(a,b,c);    
            }
    //        
    a=313; 
    b=0;
    c=13;         
    foo(a,b,c);         
    
   return 0;
}