title: Declaring types of argument variables outside the function headers in C
body: <p>I was going through the <a href="http://www.cs.cmu.edu/afs/cs/project/quake/public/code/predicates.c" rel="nofollow">list</a> of functions written by Jon Shewchuk for basic geometric
  predicates when I came across functions like <code>doubleprint</code> which purports to print the bit representation of a double.  It is defined as </p>
  
  <pre><code>void doubleprint(number)
  double number;
  {
    unsigned long long no;
    unsigned long long sign, expo;
    .
    .
    printf("_%d  (%d)", exponent, exponent - 1 - bottomi);
    }
  }
  </code></pre>
  
  <p>I would have imagined the function header would be  <code>void doubleprint(double number)</code>. Strangely 
  the above function seems to compile with gcc 4.8.2. </p>
  
  <p>Is this some special construct in C or is it equal to the "traditional" way of defining functions? </p>