That may come down to opinion. For example, type qualifiers are bound to the left.
Traditionally you would write:
char *var;
They advocate keeping type on the left, name on the right, so:
char* var;
A few things like that are covered under "Warning to experienced C programmers".
Personally, I prefer it, but have always done what everyone else expects, so there are no fights over styling.
> Does it talk about pitfalls?
Absolutely.
At a glance over, they talk about the unexpected way C treats truthy values (if it ain't 0, it's true), accidentally dereferencing to NULL, and even goes into goto, when it's good, and when it's bad.
> Does it overemphasize new, possibly less widely implemented, features?
Yes. They assume a C11 compiler, and state it in the introduction. At the moment, GCC and clang have some disagreements with how some C11 features should be treated, (GCC accepts a char or a char* for _Generic, clang requires it to be char. clang is more technically correct, but GCC is more flexible), and MSVC is still struggling to implement most of it. [0]
> Does it do/not do anything else we should know about?
I probably need a week to read it more fully, but I'll quote from the end of the introduction:
> Last but not least comes
ambition
. It discusses my personal ideas for a future development of C. C as it
is today has some rough edges and particularities that only have historical justification. I propose possible paths
to improve on the lack of general constants, to simplify the memory model, and more generally to improve the
modularity of the language. This level is clearly much more specialized than the others, most C programmers can
probably live without it, but the curious ones among you could perhaps take up some of the ideas.
Does it advocate good best practices?
Does it talk about pitfalls?
Does it overemphasize new, possibly less widely implemented, features?
Does it do/not do anything else we should know about?