I\'m trying to understand the purpose behind one header per each source file method. As I see it, headers are meant for sharing function declarations, typedef\'
You don't need one header per source file. One header per module, containing the public interface, and maybe an additional header containing private declarations etc shared between files in that module.