typedef struct | |
{ | |
void *p; | |
} Ptr; | |
struct A | |
{ | |
int i; | |
union | |
{ | |
Ptr p; | |
char *q; | |
} u; | |
}; | |
extern Ptr get_stuff (void); | |
extern void use_stuff (char *); | |
static void foo(struct A p, char *q) | |
{ | |
if (p.i) | |
p.u.p = get_stuff (); | |
else | |
p.u.q = q; | |
use_stuff (p.u.q); | |
} | |
void bar(struct A *p, char *q) | |
{ | |
foo(*p, q); | |
} |