Io farei in qesuto modo per farti capire, fare due funzioni nella quale leggi il record, poi in base all'estensione cambierei il puntatore (o puntatori) alla funzione e poi la chiamere, la union rende + leggibile anche il codicei.
Grosso modo il C++ farebbe questo. Per il resto ti passerei la mia segretaria? Sai sta x andare via