The most updated C book on the market.
First of all, it shoud be said that the C language is so widely used it's a shame that good and updated books no longer appears on the market. This book is an exception. To my knowledge, it's the only book that covers the latest additions from the
First of all, it shoud be said that the C language is so widely used it's a shame that good and updated books no longer appears on the market. This book is an exception. To my knowledge, it's the only book that covers the latest additions from the last ISO/IEC 9899:1999 standard.
This book covers (in addition to the traditional C89 standard):
1) restrict pointers.
2) the inline reserved word.
3) The new _Bool and bool types.
4) The new _Complex and _Imaginary reserved words.
5) The new "long long" integers for 64 bit integer arithmetic.
6) Variable lenght arrays.
7) Type qualifiers in array definitions.
8) Single line comments.
9) Mixed code / declaration style.
10) Variable arguments to macros.
11) The _Pragma operator.
12) Variable declaration inside for() cycles.
13) The new compound literals.
14) Flexible arrays inside struct members.
15) Delegate initializers.
16) Various additions and differences from the past standard.
and, most importantly, it always underline when a concept apply to C99 only, when it apply to C89 and when it is usable in both standards. It also underline when something get in contrast with the C++ programming language. The difference between the two standards will be always clear.
And, to my opinion, this is a *very good thing*.
What matters the most is: this book will teach you C. It's not an advanced book nor a beginner book. It's intermediate. So, if you're looking for an updated book about the C programming language and you have programmed something before, get this book now and leave complaints to others. If you're searching for a pedantic syntax/semantic analysis for the C language, just buy the specifications. The last section of the book is fantastic to gain confidence with the language. While not C related, it teaches you how to solve common problems by using C in practice:
a) Search and sorting.
b) Queues, stacks, linked lists and trees.
c) Sparse arrays with hash tables.
d) Syntax analysis and expression evaluation.
e) Some techniques used in artificial intelligence.
An additional section covers the implementation of a small C subset interpreter!!!
This book is not intended to be the most complete and advanced C book of the planet, but reading it surely it will contribute to your C knowledge and technical skills with it. Buy it without hesitation as a first book for this language. And don't skip more advanced books like "Expert C Programming" by Peter Van Der Linden, "C Traps and Pitfalls" by Andrew Koenig and "Memory as a Programming Concept" by Frantisek Franek.