struct st{ 
struct st
{
        int a;
    char ch;
};

volatile int result; 
int (*p[4]) (int x, int y);

int foo(int a, int b)
{
    a++;
    b++;
    return a;
}

int main(void)
{
    volatile int i, j, op;
    p[0] = foo;    /* address of foo() */
    struct st obj;
    struct st *stobj = &obj;
    stobj->a = 0x05;
    stobj->ch = 0x09;
    result = (*p[0]) (3,4);
}