

C Language Quirks - instantramen
http://www.danielvik.com/2010/05/c-language-quirks.html

======
silentbicycle
For far more of same, there's Koenig's _C Traps and Pitfalls_. Heck, the
article (<http://www.literateprogramming.com/ctraps.pdf>) that grew into the
book is even free online.

Also, for anybody doing modern C work, I strongly recommend both Hanson's _C
Interfaces and Implementations_ and Ierusalimschy's _Programming in Lua_, 2nd
ed. The former _nails_ writing good C libraries, and the latter covers one
_particular_ library that provides a portable, C-friendly, mature, efficient
(<http://luajit.org/>), ready-made scripting language that is a cleaner
incarnation of JavaScript's "good parts".

Also, both are _good reading_. The former is a shining example of literate
programming, and the latter is IMHO one of the best programming texts that
wasn't co-written by Brian Kernighan. :)

~~~
silentbicycle
("Also, also"? Oops. Missed that before the edit window closed.)

~~~
tgerhard
How refreshing!!

As an editor, I must say that it warms my heart to know that someone out there
actually proofreads his comments. Bravo!

Also, thanks for the C Pitfalls link. It will prove quite useful in my current
project. The original article isn't too bad, either.

------
CountHackulus
I work on a compiler, I agree, there's some weird behaviour that's possible,
but a lot of the things he's described are implementation defined. There are
general conventions, but things like shifting values more than double their
size is implementation defined.

If you really want to get a good handle on C, there's nothing like reading the
spec.

------
grogers
The common theme in almost all of these are:

1) implicit integer promotion causes hard to find errors 2) operator
precedence is non-intuitive (just use parens anyways!)

