Making the hdf5 Reader forward and backward compatible

All,

My project requires me to have forward and backward compatibility for
the hdf5 files written out across different versions of the application
. I am aware that hdf5 read does support compatibility to a certain
extent . i.e.

If I have a structure say S1

Struct S1

{
int a;

double b;

long c;

}

in one version( say V1) of application . and the next version of the
application removes the variable c from the structure , hdf5Read will be
able to identify if the variable c needs to be Read in that particular
version . This also holds good if another variable is added to S1 ( in
the new version ) .

This is a case where in the structure changes marginally . What if the
structure changes completely

Say in the next version( V2) S1 is defined as below

Struct S1

{

     float a;

     char* b;

};

In this case is the hdf5 file Created by V1 of the application will have
S1 different from what is expected by version V2 . Hd5 Read will not be
handling this implicitly .

One of the methods I have though of is :

The structure will have a default value associated with all its data
members . When a structure is being Read , instead of Reading the
structure as a whole data members will be Read individually . On failure
of Read of any data member , the default value ( predefined for the
application) will be used .

Queries - What are the implications of such Read on the performance ?

Can anyone suggest some other approach that can be followed .

Thanks and Regards

Ramakrishnan