From Amazon
Defying the stereotypical notion that technical books tend to be boring,
Expert C Programming offers a lively and often humorous look at many aspects of C--from how memory is laid out to the details of pointers and arrays. The author reveals his points through invaluable anecdotes, such as stories of costly bugs, and through folklore, such as the contents of Donald Knuth's first publication. Each chapter ends with a section entitled "Some Light Relief," which discusses topics (topics that some may consider to be "recreational"), such as programming contests. A fabulous appendix on job interview questions finishes the book. --
Jake Bond
From the Inside Flap
Preface
Browsing in a bookstore recently, I was discouraged to see the dryness of so many C and C++ texts. Few authors conveyed the idea that anyone might enjoy programming. All the wonderment was squeezed out by long boring passages of prose. Useful perhaps, if you can stay awake long enough to read it. But programming isn't like that!
Programming is a marvellous, vital, challenging activity, and books on programming should brim over with enthusiasm for it! This book is educational, but also interesting in a way that puts the fun back in functions. If this doesn't seem like something you'll enjoy, then please put the book back on the shelf, but in a more prominent position. Thanks!
OK, now that we're among friends, there are already dozens and dozens of books on programming in C - what's different about this one?
Expert C Programming should be every programmer's second book on C. Most of the lessons, tips, and techniques here aren't found in any other book. They are usually pencilled in the margin of well-thumbed manuals or on the backs of old printouts, if they are written down at all. The knowledge has accumulated over years of C programming by the author and colleagues in Sun's Compiler and Operating Systems groups. There are many interesting C stories and folklore, like the vending machines connected to the Internet, problems with software in outer space, and how a C bug brought down the entire AT&T long-distance phone network. Finally, the last chapter is an easy tutorial on C++, to help you master this increasingly-popular offshoot of C.
The text applies to ANSI standard C as found on PCs and UNIX systems. Unique aspects of C relating to sophisticated hardware typically found on UNIX platforms (virtual memory, etc.) are also covered in detail. The PC memory model and the Intel 8086 family are fully described in terms of their impact on C code. People who have already mastered the basics of C will find this book full of all the tips, hints, and shortcuts that a programmer usually picks up over a period of many years. It covers topics that many C programmers find confusing:
- What does typedef struct bar {int bar;} bar; actually mean?
- How can I pass different-sized multidimensional arrays to one function?
- Why, oh why, doesn't extern char *p; match char p100; in another file?
- What's a bus error? What's a segmentation violation?
- What's the difference between char *foo and char(*foo)?
If you're not sure about some of these, and you'd like to know how the C experts cope, then read on! If you already know all of these things and everything else about C, get the book anyway to reinforce your knowledge. Tell the bookstore clerk that you're "buying it for a friend."
PvdL, Silicon Valley, California