C IS AN AWFUL PROGRAMMING LANGUAGE, and an awfully popular, powerful
and pervasive programming language. Everyone who has used C will know
it blooms with subtleties and traps for the novice or unwary expert.
Yet it remains the language of choice for systems and application
programming, both for historical reasons (such as Unix) and because of
its perceived power and convenience.
When people first learn C, they are usually warned away from its more
glaring pitfalls by teachers or texts. A very early lesson usually
highlights the differences between the "=" and "=="
operators, for instance. On the other hand, it usually isn't
necessary for novices to understand the differences between "char
*a[];" and "char (*a)[];". This book focuses on those
intricacies of the language which expert C programmers -- and people
wishing to become such -- need to understand in detail.
Van der Linden clarifies many often-misunderstood issues. There are
chapters discussing the history of C; systematic approaches to reading
and understanding complicated declarations; practically all of the
similarities and differences between arrays and pointers; issues
related to linking and runtime data structures; the Intel 80x86
architecture; and an introduction to C++ from the point of view of a C
expert. This is all delivered in a light-hearted but unpatronising
style, accompanied by asides about famous and infamous bugs, a "light
relief" section at the end of each chapter, and an appendix on
"secrets of programmer job interviews".
"Deep C Secrets" is certainly not a first book on C. It's a second
book: if you're experienced at programming in C and feel like making
sure your understanding is rigorous, it might be time to take a look
at it.