Media praise for 21st Century C

Have a blog? Join our Reader Review Program

"This book exceeded my expectations. The writing is clear and upbeat, not ponderous or patronizing. While I did not agree with every word and every recommendation, I found plenty of material to consider and a lot more to learn than I anticipated. The author clearly knows his stuff and has carefully studied the language definition; his opinions matter. ...Whether you are new to C or a longtime user, you will find plenty of opportunities to learn and to improve your knowledge of the language."
-- Edgar R. Chavez, Computing Reviews, Independent Consultant

"I've recently been looking for a new book on C, not wanting to spend the time on read Computer Science type text book. During my search I came across 21st Century C from O'Reilly. Upon first glance at the table of contents, I was intrigued." Full Review >
-- Rick Salsa,

"This intermediate level book provides guidance on new methods of coding in C as well as identifying the common pitfalls and providing workarounds to them. The book is split into two sections on dealing with the ecosystem around C development and the second the language itself. This is not a teach you how to write in C book, users are expected to have a grasp of the language prior to starting out with this book." Full Review >
-- Andrew Colin Kissa,

"I wouldn't recommend this book in general. If you're looking for idiomatic C, and you're experienced enough with C to know what works and what doesn't, and are able to make judgment on a case-by-case basis with regards to the author's advice, you might be able to find a few interesting gems in here." Full Review >
-- Alejandro Cabrera,

"In few words this book is a collection of brief introductions of all the aspects regarding programming in C using methods and tools gained probably from the author experience with open or closed source projects. First, this is not a book about C programming language. It is a book for people who start to program in C and want to learn how to start using it in a proper and efficient way to create something more than programming exercises. The main idea that the author want to tell is that C is not only a system level programming language and can be used for other general purpose applications. The book is splitted in 2 main parts: the former talks about setting a C environment that automates most of the tasks as compiling, documenting, testing, releasing, source control and process flow. The latter is about tips of the C language that can be usefull to speed up the work. The first part is the more detailed and covers most of the aspects of compiling C programs - Chapter 1: Set yourself for compilation - Chapter 2: Debug, test, Document - Chapter 3: Packaging your project - Chapter 4: Version Control - Chapter 5: Playing nice with others Those chapter titles explain most of the content of this first part of the book. They try to guide the reader to have a functional environment that covers all the steps of the software development. The tools briefly descripted in this chapter are: - compilers for different OSes. - GDB for debugging - Valgrind for memory problems checking - Doxygen and CWEB for automated documentation - Shell, make and Autotools for automatic and easy compiling - Git for source control - Tips for write understandable and clean code The second part of the book is about bits and pieces of the C language: - Chapter 6: Your Pal pointer - Chapter 7: C syntax you can ignore - Chapter 8: Obstacles and opportunities - Chapter 9: Text - Chapter 10: Better structures - Chapter 11: Object-oriented C - Chapter 12: Libraries This chapter contains mostly some tips about pointers, string, sintax and data-structure management. It covers some high-level stuff like databases and network connection but really briefly. In my opinion the author tries to explaino too many things in one single book. He wants to give to C more visibility to the Application Engineers that typically use high abstraction. At the same time he wants to give guidelines about the environment and give hint on some pieces of the language. Except for the first part that covers enough the argument proposed in the chapter title, the second part seems to be a collection of blog tips glued together chosing within the most strange aspects and missing of C. I think as a programmer but even more as bad DIY mechanic that the tool is the most important part of the job. It's fine to use C if you really need to use the performance and the feature it only has, if you don't need those simply don't use it. Java, C#, Python and so on are more easy to use for some applications and should be used instead. Probably application engineers can benefit from this book to have some idea or have a start with C. Newstarters in C and programming can found it useful but they will need to integrate with other resources all the brief description given for some tools (I suggest to read Pragmatic Programmer) " Full Review >
-- Daniele Di Donato,

"The content includes broad topics of C89, C99, C11, POSIX standerdized API and readers can effectively find something interesting and entry points for further programming skills. However, because a lot of topics are treated, each topic is shallow. Though the title of this book provides readers an impression they can become modern programmers, beginners for C programming should not start from this book because almost of the topic is intermediate or upper level. Without having basic programming knowledge for C and understanding difficult points with basic C programming, readers can't understand the value of the described technics and why C11 integrated new syntax described here and what matters were resovled by technics the author introduced. A topic related to macro is interesting for me because it made me reconsider the benefit of macro. For examples, how to bring foreach syntax into C programming and so forth." Full Review >
-- Hitoshi Uchida,

"This book starts out by specifying all the required packages and libraries you're going to need to follow along. The first chapter "Set Yourself Up for Easy Compilation" covers the tools on all platforms (Windows, OSX, Linux) - GCC command line coverage of how to link, set search paths and the why the author chooses various compiler flags." Full Review >
-- Claudio J. Lacayo,

"A great concept, however once I read about an acceptable baseline for memory leaks, I had a hard time finishing it. There are some great (and some terrible) tips in this book, so take it for what it is. I picked up a few things here and there, but overall i would not recommend this book." Full Review >
-- Mat Powell,