title: What do the parentheses around a function name mean?
body: <p>In one of my project source files, I found this C function definition:</p>
  
  <pre><code>int (foo) (int *bar)
  {
      return foo (bar);
  }
  </code></pre>
  
  <p>Note: there is no asterisk next to <code>foo</code>, so it's not a function pointer. Or is it?
  What is going on here with the recursive call?</p>