REVIEW - Jamsa's C/C++ Programmer's Bible - The Ultimate Guide to C/C++ Programming


Title:

Jamsa's C/C++ Programmer's Bible

The Ultimate Guide to C/C++ Programming

Author:

Kris A. Jamsa, Lars Klander

ISBN:

Publisher:

Singular (1998)

Pages:

925pp

Reviewer:

Francis Glassborow

Reviewed:

August 1998

Rating:

★☆☆☆☆


This is a massive tome that attempts to cover a vast amount of ground. Were it substantially accurate it would be a worthy addition to any programmer's bookshelf. Unfortunately one of the consequences of running a press to publish your own work is that you may not always do the work required to move a manuscript from a working draft to a polished product.

The lead author of this book established a sufficient reputation with his early work to attract other publishers into handling the distribution of his company's books. On the evidence of this book they should reconsider.

The authors seem to be confused about their aims. Many of the tips are system dependent (and only a substantial understanding of different OSs will give the reader any sense of which tips are relevant to the system on which they are working.) Much worse, many of the tips that are not ill conceived to start with are plain wrong. Of course anyone who thinks that a copy of Turbo C++ Lite is going to be much use with a book that purports to cover Windows programming, the STL and multi-threading is obviously expecting more than can be reasonably delivered. Let me give you a few examples.

'464 Passing Arrays on the Stack' does not actually tell you how to do this should you wish to. It is just a very brief item that effectively says that you pass the address of the first element of the array.

The immediately preceding tip refers to the

NULL
character. That should be
NUL
. OK you may think I am being picky, but the work is littered with errors. Some of them are almost laughable. I have no idea where the authors arrive at 'The Julian calendar is identical to the Gregorian calendar, except that it commences year one at the Gregorian-equivalent 46 BC.' And the authors do not seem to know what a Julian day is (it has nothing to do with a Julian date.) Here is another example: 'Tip 173 Determining Whether Two Strings are the Same' provides you with a function to compare two strings character by character. See how many errors you can spot:

int streql(char *str1, char *str2) { 	while ((*str1 == *str2)&& (*str1))  { 		str1++; 		str2++; 	} 	return((*str1 == NULL)&& (*str2 == NULL)); }
On second thoughts why bother? Either compare the addresses if you want to answer the question as phrased, or use
strcmp()
if you want to see if they match. Any author who can provide you with a function that includes blatant undefined behaviour when there is a perfectly good library function does not deserve to be taken seriously. I was going to suggest you use this book as a door stop, but if you have a copy take it back to the seller and demand (courteously) a refund of your money. The book does not match its cover description and using it would be positively dangerous to your professional reputation.

Book cover image courtesy of Open Library.





Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.