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