title: Why would you use `extern void my_func();` rather than including `my_utils.h`?
body: <p>I'm working on some code I didn't write and noticed that there are many <code>extern void my_func();</code>.</p>
  
  <p>My understanding is that <code>extern</code> in for global variables, not for functions.</p>
  
  <p>Is there a practical reason to declare a function as <code>extern</code> rather than putting it in a header file and including that? Or is this just a stylistic choice?</p>