title: C syntax for functions returning function pointers
body: <p>Consider the following typedefs :</p>
  
  <pre><code>typedef int (*f1)(float);
  typedef f1 (*f2)(double);
  typedef f2 (*f3)(int);
  </code></pre>
  
  <p><code>f2</code> is a function that returns a function pointer. The same with <code>f3</code>, but the type of the function, the pointer to which <code>f3</code> returns, is <code>f2</code>. How can I define <code>f3</code> without the typedefs? I know typedefs are the cleaner and easier to understand way to define <code>f3</code>. However, my intention here is to understand C syntax better.</p>