title: extern on function prototypes?
body: <h3>my_math.h</h3>
  
  <pre><code>// case 1 
  unsigned int add_two_numbers(unsigned char a, unsigned char b);
  
  //case 2 
  extern unsigned int add_two_numbers(unsigned char a, unsigned char b); 
  </code></pre>
  
  <p>What is the difference between case 1 and case 2? I never used <em>extern</em> for function prototypes but looking at someone's code (who is way more experienced than I am) I see <em>extern</em> always used when declaring the function prototype. Can anyone point please point the difference? (or point me to a link where I can find specific information). Google says that is something related to the external linkage. Can anyone point me to an example where one would work and the other wouldn't?</p>
  
  <p>I am using embedded C (KEIL), if it makes any difference. </p>