Such macros are provided to facilitate application compatibility. Their use and mappings are fully described in API Compatibility Macros in HDF5; we urge you to read that document closely.
When both the HDF5 library and the application are built and installed with no specific compatibility flags, H5R_DEREFERENCE is mapped to the most recent version of the function, currently H5R_DEREFERENCE2. If the library and/or application is compiled for Release 1.6 or 1.8 emulation, H5R_DEREFERENCE will be mapped to H5R_DEREFERENCE1. Function-specific flags are available to override these settings on a function-by-function basis when the application is compiled.
Specific compile-time compatibility flags and the resulting mappings are as follows: