union align { char *cp; void (*f)(); long l; FILE *fp; double d; }
union block_hdr { union align a; /* actual header */ struct { char *endp; union block_hdr *next; char *first_avail; } h; }