On Thu, Oct 12, 2017 at 3:29 AM, Rhodri James <rho...@kynesim.co.uk> wrote: > On 11/10/17 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. > > > That's only really one level more complex than declarations I use fairly > regularly (I am an embedded system programmer most of the time). On the > other hand, I never actually do declare things in that way: typedef is your > friend, and makes your C code much easier to read.
I wouldn't consider embedded systems to be the most common kind of C coding out there, particularly when people compare against C++ (I don't remember ever hearing of anyone doing embedded work in C++, though I'm sure it does happen). Nevertheless, you're exactly right about the typedefs. Writing crazily complicated type declarations without typedefs is like writing massively nested list comprehensions without intermediate variables. Hey look, Python's terrible! Or maybe they're just non-idiomatic examples. ChrisA -- https://mail.python.org/mailman/listinfo/python-list