Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!watmath!clyde!burl!mgnetp!ihnp4!zehntel!hplabs!sri-unix!gwyn@BRL-VLD.ARPA
From: gwyn@BRL-VLD.ARPA
Newsgroups: net.lang.c
Subject: Re:  Required Declaration of C Function Parameters
Message-ID: <568@sri-arpa.UUCP>
Date: Tue, 31-Jul-84 09:43:08 EDT
Article-I.D.: sri-arpa.568
Posted: Tue Jul 31 09:43:08 1984
Date-Received: Sat, 4-Aug-84 00:57:34 EDT
Lines: 18

From:      Doug Gwyn (VLD/VMB) 

That is a good point you raise.  For clarity, consider the example:

typedef		t_func;
extern t_func	func( t_func (*)(), int, char * );

Note the empty parentheses in the first parameter specification.
This is one case in which the "unspecified parameters" use of `()'
appears to be essential.  Note also that the value type `t_func'
must have been previously defined.

I think the key is that the type of the function `func' is just its
value type and the fact that it is a function, i.e. `t_func ()',
and the types of the parameters are not part of its formal type
although it is required that the parameter types be given in the
function declaration.  This is an important distinction that solves
the problem of recursive types.