bueno, si, mi solucion fue parecida:
Código:
#define devuelve_estructura(puntero_miembro,nombre_estructura,nombre_miembro) \
(nombre_estructura *)(puntero_miembro-(long)(&((nombre_estructura *)0)->nombre_miembro));
Solo que yo si tarde mas tiempo...
Saludos