title: C: Why do we include header files, which declare but don't define?
body: <p>At a high level, I understand we use <code>#include</code> statements to make code from other files available to the current file. But I don't understand why we include a header file, which contains declarations but no definitions.</p>
  
  <p>Maybe I need to learn more about the compilation/linking process to fully understand the mechanics, but is there a high level concept I'm failing to grasp at the outset?</p>
  
  <p><em>Edit</em>: All the answers helped clarify my question, which boils down to: once we've notified the compiler that a function is defined elsewhere, how does it figure out where to find that definition?</p>