Until now I have been putting all function declarations in a single global header file (except for those that have an obviously limited need of scope).
I am now considering putting all declarations in the header file corresponding to the source file where the definition is found, and include that header in all source files that need to call one of those functions.
I'll still use the global header for the declarations that are so widely used that I can't seem to keep track of who wants them...or I could include such individual headers in the global header file rather than pull the individual declarations across.
Does this sound like a plan?