I like this book - it had all the 'gotchas' I knew about (endian, stack/heap memory, etc), and added several more.

Two things I'd like to mention: first, the author gave several really good reasons why the examples were in C code (devoted Chapter 2 to it as a matter of fact), but I still would have preferred more of a mixed bag of languages to provide examples, as many languages have portablility issues.

Secondly, the author buried a really good message in the text, and I couldn't find it again quickly to include it in this review. The gist of it is: Don't write your code to be 100% portable - you'll never get it done. Just keep portability in mind, implement where possible, and expect to modify code when necessary. I think this message deserves to be highlighted, as portability is just one design goal among many (including getting the application completed in a reasonable amount of time).

I rate this book a 7 out of 10. People interested in portability issues will find this a great resource.