1 typedef void* Ptr; 2 3 struct A 4 { 5 int i; 6 union 7 { 8 Ptr p; 9 char *q; 10 } u; 11 }; 12 foo(struct A * p,char * q)13static void foo(struct A *p, char *q) 14 { 15 if (p->i) 16 p->u.p = 0; 17 else 18 p->u.q = q; 19 } 20 bar(struct A * p,char * q)21void bar(struct A *p, char *q) 22 { 23 foo(p, q); 24 } 25