From mboxrd@z Thu Jan 1 00:00:00 1970 From: hellwig.geisse@mni.thm.de (Hellwig Geisse) Date: Sat, 13 May 2017 01:25:42 +0200 Subject: [TUHS] The evolution of Unix facilities and architecture In-Reply-To: References: <20170511140729.2262B18C09A@mercury.lcs.mit.edu> <20170511142142.GA4341@mcvoy.com> <20170511171100.GA9980@yeono.kjorling.se> <1494570272.2218.180.camel@mni.thm.de> Message-ID: <1494631542.2218.215.camel@mni.thm.de> On Sa, 2017-05-13 at 07:12 +1000, Dave Horsfall wrote: >  > Let's see: > >     aneurin% cdecl >     Type `help' or `?' for help >     explain void (*p)(int) >     declare p as pointer to function (int) returning void > > So the "fundamental" type (if there was such a thing) would be a > pointer to a function, I guess i.e. don't treat it as anything else. > Yes, of course. What I was aiming at: If you try to declare two of these variables, neither "void (*p,q)(int)" nor "void (*(p,q))(int)" is allowed, so you cannot use the "fundamental type" to declare more than one variable of this type in a single declaration list (as you had suggested with "char* cp1, cp2"). "void (*p)(int), (*q)(int)" in contrast is legal, but I wouldn't call "void" the fundamental type in these declarations. Thus my statement "list construction (in declarations) and C declarations don't mix well" - IMO one of the difficulties in reading/writing C declarations, and the starting point of this discussion. Hellwig