I know defining a header file can cause a linking stage error if the header file is used in multiple modules because you will have multiple definitions of the same function.