Expert C Programming: Deep C Secrets by Peter van der Linden

Posted on May 15, 2016 by Tommy McGuire
Labels: c, books

How did I miss this book?

That's a rhetorical question. I know how I missed it. It came out in the early to mid '90s, amidst a flock of other books with titles including "expert", "deep", and "secrets". All of those other books were crap. So I remember seeing it and thinking, "Expert? Secrets? Yeah, right."

It turns out, I shouldn't have done that.

Peter van der Linden wrote a very good book about the parts of the C ecosystem that are very, very important, if you need to do something more than a quick tutorial about C programming. That includes:


Do not unscrew the cover of this book---there are no user-servicable parts inside.

Now, I do have to say that I'm familiar with most of this stuff. I should be; C is my native language. Or, at least, I was familiar with it at some point in the past. These days, I feel lucky to be familiar with the bottom of my cereal bowl. But if I wasn't, Expert C Programming would be a delightful introduction to them. It's well written, with an excellent sense of humor. (Editor's note: that might be humor, and it might be the strange, cackling insanity that comes from knowing too much about C. It is difficult to say. Either way, it's all good.) As it is, I have found the book to be a very engaging read.

To conclude, here is an example:

Another problem [with linking] occurs if you mention the static libraries before your own code. There won't be any undefined symbols yet, so nothing will be extracted [no code from the library will be included in your program]. Then, when your object file is processed by the linker, all its library references will be unfulfilled! Although the convention hass been the same since UNIX started, many people find it unexpected; very few commands demand their arguments in a particular order, and those that do usually complain about it directly if you get it wrong. All novices have trouble with this aspect of linking until the concept is explained. Then they just have trouble with the concept itself.

One final advantage: the book has a coelacanth on the cover.

active directory ashurbanipal authentication books c c++ comics conference continuations coq data structure digital humanities Dijkstra eclipse virgo electronics emacs goodreads haskell http java job Knuth ldap link linux lisp math naming nimrod notation OpenAM osgi parsing pony programming language protocols python quote R random REST ruby rust SAML scala scheme shell software development system administration theory tip toy problems unix vmware yeti
Member of The Internet Defense League
Site proudly generated by Hakyll.