title: What is the use of the `inline` keyword in C?
body: <p>I read several questions in stackoverflow about <code>inline</code> in C but still am not clear about it.</p>
  
  <ol>
  <li><code>static inline void f(void) {}</code> has no practical difference with <code>static void f(void) {}</code>.</li>
  <li><code>inline void f(void) {}</code> in C doesn't work as the C++ way. How does it work in C?</li>
  <li>What actually does <code>extern inline void f(void);</code> do?</li>
  </ol>
  
  <p>I never really found a use of the <code>inline</code> keyword in my C programs, and when I see this keyword in other people's code, it's almost always <code>static inline</code>, in which I see no difference with just <code>static</code>.</p>