On 11/10/2017 15:36, Chris Angelico wrote:
On Thu, Oct 12, 2017 at 1:14 AM, bartc <b...@freeuk.com> wrote:
Python, maybe. C syntax isn't as painful as C++ but I still have a lot of
trouble with it. (Eg. the variable declaration 'char(*(*x[3])())[5]'. The
name of the variable can be found lurking in that lot somewhere, but what's
the type?) Not so convenient.

People love showcasing stupid examples like that. But how often do you
REALLY make declarations that complex? That's not technically
strawmanning, since C syntax does indeed include that, but you're
cherry-picking the most extreme example.

Sure. Statistically most declarations are going to be things like 'int' or 'char*. But more complicated ones (usually not as bad as the example), crop up often enough to be a nuisance.

I may see them more than others because I very often need to interface one of my languages with some API defined in C, and I need to exactly understand what the types are so that I can create compatible ones.

Anyone else can just include the apposite headers and be done with it without needing to see what's inside.

While on the subject of C syntax, here are some fun ambiguities:

f(x);    // call function with arg x, or declare x of type f?

a*b;     // multiply a by b, or declare b of type pointer to a?

(a)*b    // multiply a by b, or cast *b to type a?

I understand that in C++, you also have things like this, but in spades.

--
bartc
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to