title: Header per source file
body: <p>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, <code>typedef</code>'s and macro's between several files that utilize them. When you make a header file for your <code>.c</code> file it has the disadvantage that each time you want to see a function declaration or macro you need to refer to the header file, and generally it is simpler that everything is in one source file (not the whole software, of course).</p>
  
  <p>So why do programmers use this method?</p>