I think the header file could avoid redefinition errors. at compile time by adding macro definitions.