- Series: Nutshell Handbooks
- Paperback: 456 pages
- Publisher: O'Reilly Media; 3rd edition (August 11, 1997)
- Language: English
- ISBN-10: 1565923065
- ISBN-13: 978-1565923065
- Product Dimensions: 7 x 1.1 x 9.2 inches
- Shipping Weight: 2 pounds (View shipping rates and policies)
- Average Customer Review: 663 customer reviews
- Amazon Best Sellers Rank: #139,624 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Practical C Programming: Why Does 2+2 = 5986? (Nutshell Handbooks) 3rd Edition
Use the Amazon App to scan ISBNs and compare prices.
Frequently bought together
Customers who bought this item also bought
From the Publisher
There are lots of introductory C books, but this is the one that has the no-nonsense, practical approach that has made Nutshell Handbooks(R) famous. C programming is more than just getting the syntax right. Style and debugging also play a tremendous part in creating programs that run well and are easy to maintain. This new edition of Practical C Programming teaches you not only the mechanics of programming, but also how to create programs that are easy to read, debug, and maintain. It features more extensive examples, offers an introduction to graphical development environments, and describes Electronic Archaeology (the art of going through someone else's code). As in earlier editions, practical rules are still stressed. For example, there are fifteen precedence rules in C (&& comes before || comes before ?:). The practical programmer reduces these to two: multiplication and division come before addition and subtraction put parentheses around everything else. Topics covered: Good programming style C syntax: what to use and what not to use The programming environment, including integrated development kits The total programming process Floating point limitations Tricks and surprises Program examples conform to ANSI C. Covers several Windows compilers, as well as UNIX compilers.
About the Author
Steve Oualline lives in Southern California, where he works as a software engineer for a major phone company. In his free time he is a real engineer on the Poway Midland Railroad. Steve has written almost a dozen books on programming and Linux software. His web site is http://www.oualline.com .
Browse award-winning titles. See more
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
I really liked it's structure: there's a brief "Tour of C++" before the more detailed chapters. In this tour, you can see in a glance what C++11 offers for many programming tasks that's not present in earlier standards: variadic templates, static assertions, many concurrency primitives, a new uniform initialization syntax, initializer lists, range-for loop, new STL containers, etc.
After that, there are detailed chapters intended to cover all the details of all the language features and the STL. After seeing a lot of cool stuff in the tour, you are motivated enough to go through the detailed descriptions of everything written by the C++ creator himself.
But pay attention to the title: the book is about "The C++ Programming Language". It's not intended to instruct you about:
- How to program;
- How to write efficient, readable and/or modularized code using C++;
- How to use concurrency to enhance the performance of algorithms;
- How to design APIs (although the STL is a good example in many situations);
- What are the best tools (compiler, VCSs, build systems, IDEs, libraries) to develop C++ programs.
It's rather a hitchhiker's guide to C++.
The C++ Programming Language (3rd Edition) and C++ in a Nutshell are my two primary go-to references for day-to-day C++ programming (and stackoverflow of course). As a primarily-embedded C/C++ programmer for over 25 years, I don't read books like this cover-to-cover. Instead, I bounce around the book to explore topics, gain deeper insight, or refresh my memory on some obscure corner of the language. Having done that now for over a month, I've come to like this new edition. Typography-wise, the 4th edition is easier on the eyes, with better use of whitespace, liberal use of navy blue for keywords and program examples, and more tables and graphics than in the previous edition. This may sound trivial, but it's not--I find the improved layout makes this edition much more accessible as a reference than the more densely-printed 3rd edition.
This edition is a significant rewrite from the 3rd edition. Obviously, it contains a lot of new material covering the C++11 additions to the language. As you would expect, there are entire new chapters on concurrency and threads and processes. However, there are also significant expansions of previous topics. For example, the discussion of the iostream 'locale' facilities occupied a little more than one page in the 3rd edition; in the 4th edition 'locale' gets an entire chapter of its own, with a much greater discussion of facets, money, and the like. Concepts like RAII are now covered in detail. Overall, my impression is that Mr. Stroustrup attempted to expand topics that are of increasing prominence today, and for the most part succeeded. In addition, one of my favorite parts of the older edition, Mr. Stroustrup's lists of programming advice at the end of each chapter, are still there, revised and expanded as necessary. Sadly, what is missing are the old 3rd edition chapters on Development and Design, and Design and Programming. Not only were these sort of a condensed Peopleware: Productive Projects and Teams (3rd Edition) that I enjoyed reading, they also allowed the word 'moron' to appear in the index of the 3rd edition--a word that is now gone from the index of the 4th edition, but still applicable on many product teams :-)
My only complaint with this new 4th edition is that it truly does represent C++ 'moving on'. There is no delineation in the text between C++11 additions and the earlier language constructs. As Mr. Stroustrup mentions in the intro, this is a deliberate choice on his part to present C++ as an "integrated whole, rather than as a layer cake". The old 3rd edition Appendix B "Compatibility" is now Chapter 44, "Compatibility", and the list of changes is presented there. I would have preferred that Mr. Stroustrup would at least have put margin bars in those places where C++11 changes occurred. Not everyone is running the latest GNU desktop compiler; in the embedded world in particular change comes slowly, and some of the C++11 changes are subtle enough that you might occasionally believe an example would work until the compiler informs you otherwise.
Overall, I consider this an excellent reference to C++, more accessible than the previous edition, updated with the latest techniques, and with better coverage of contemporary topics. That said, I also intend to keep my 3rd edition around for a while longer, as a lot of the sections pertaining to dealing with older compilers and interfacing with older libraries did not make it to this new edition. As management likes to say: 'let them eat (layer) cake'.
In addition to syntax and semantics, the author often includes suggestions on style, approaches and design. Some of these are general programming suggestions, others relate to C++ specifically. All have been insightful, and the C++ suggestions have helped adapt the C++ paradigm.
For an experienced programmer taking on a new language (or newer versions of this language), this is a good choice. For someone new to programming, this would be a steep learning curve; a more tutorial-oriented, introductory book may be better.
The only thing I think would improve this book would be to include a margin note or icon next to statements that are specifically C++11. If you're already familiar with what's new in C++11, it's not an issue. But if you aren't, and your compiler doesn't yet support the new standard, margin notes/icons would help.