1typedef void* Ptr; 2 3struct A 4{ 5 int i; 6 union 7 { 8 Ptr p; 9 char *q; 10 } u; 11}; 12 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 21void bar(struct A *p, char *q) 22{ 23 foo(p, q); 24} 25