From USENET/NewsGroup postings...
Barry Kelly writes
> > My particular bone of contention with C & C++ is function pointer
> > declarations. Pascal types are generally read from left to right, nice and
> > simple. A pointer to an array of functions returning pointers to arrays of
> > functions returning pointers, in OP, as short as possible (^array isn't
> > allowed by compiler):
> >
> > I never learned the proper order and syntax for function pointers or
> > arrays in C, so I can't write an equivalent. Generally, though, complex C
> > declarations have to be read backwards and inside out, especially when you
> > get to C++ and the distinction between const pointer and pointer to const
> > and const pointer to const...
William Meyer writes:
> I used to remember the page number in K&R for the table of precedence, and
> the place where it delineated the order of interpretation in unpacking the
> sense of declarations. Some were L->R, others were R->L, and still others
> bounced back and forth, from the inside out.
PasWiki agrees strongly with the above conclusions about the C and C++ language. I've written about this so many times on PasWiki and other places - glad to see others come to the same conclusion.
I hope Digital Mars (D Programming Language) considers this and will consider changing their syntax to be more sensible. Fortunately or unfortunately the D programming language looks to be a very powerful and strong language for the future - except for the fact that it still inherits certain stupidity from the C language, such as the above issues.
|