3.6 Statements  -< ANSI C Rationale  -> 3.8 Preprocessing directives             Index 

3.7  External definitions

3.7.1  Function definitions

A function definition may have its old form (and say nothing about arguments on calls), or it may be introduced by a prototype (which affects argument checking and coercion on subsequent calls).  (See also §3.1.2.2.) 

To avoid a nasty ambiguity, the Standard bans the use of typedef names as formal parameters.