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.