Since Dennis
M. Ritchie has undergone great changes in the field of computer programming since the C language was designed and implemented in 1973. Object-oriented languages such as C ++, Java, and C #, which are based on C language, have successively emerged and have achieved great success in their respective fields. Today, C and its descendants almost rule the world of computer programming. It can be said that the birth of C language is the starting point of the modern language revolution, it has changed the trajectory of the development of programming language, is a milestone in the development history of programming language.
However, C is not just the starting point and foundation of other languages, otherwise it has become another Abandoned person in the development of programming languages. C language is critical today, just as it was originally invented. Its Expressiveness, efficiency, conciseness, compact, ultimate control over machines, and high portability across platforms make it dominant in system programming, embedded programming, and other fields, the formulation of the c99 standard once again makes C language a new vigor. The following describes several books in the C programming field, some of which are classic.
1. Brian W. kernighan, Dennis M. Ritchie, C Programming Language
Tsinghua printing plate, exercise set; mechanical translation (new version, old version): exercise set
This is one of the most widely respected classics in all programming language books so far. It is a must-read task for any C programmer. Because the C language designer Dennis
M. Ritchie and Brian W. kernighan, a famous computer scientist, are nicknamed "K & r c ". Yes, it first introduces "hello"
World !" Program, which became the first example in any subsequent book on entry-level programming language.
Just as the C language itself is concise, compact, and extremely powerful, this book is light, short, and extremely powerful. Through concise descriptions and typical examples, it comprehensively, systematically, and accurately describes the features of C language and the basic methods for designing C Programs, the content covers basic concepts, types and expressions, control flow, functions and program structures, pointers and arrays, structures, inputs and outputs, UNIX system interfaces, and standard libraries.
Jane and clearness are the biggest characteristics of this book. This small book can teach you a lot of "big part" knowledge that is several times thicker than it. I think that the Technical authors who easily piece together hundreds or even thousands of pages should learn from K & R. For medium and senior programmers, this book is the first choice if they want to quickly obtain the serious knowledge of C language and do not want to spend even a little time.
By the way, the index creation in this book is outstanding and has great practical value. This may first be attributed to the conciseness of the text. In addition, although it looks like a tutorial, it is actually a guide for professional programmers. If you do not have any background or basic knowledge of C language programming, this book may not be suitable for your C language enlightenment.
2. Perter van der Linden, Expert C Programming
C expert Programming
C language is a serious programmer language, but it does not mean that C language books must be taught with a face. In this book nicknamed "fish book" by C programmers (with an "ugly" coolder on its cover), as a member of Sun's compiler and operating system core development team, peter vividly demonstrated his profound technological accumulation, rich project experience, superb writing skills, and brand-style humor. In this work, the author naturally incorporates Yiwen story, wisdom, and humor into the technical description with a smooth text and humorous style, and reads a novel as interesting as it is.
This book describes the C language's history, language features, statements, arrays, pointers, connections, runtime, and memory usage, and reveals many of the mysteries of the C language, in particular, the details of declarations, arrays, pointers, and memory usage are thoroughly parsed. To become an expert C programmer, all this content must be mastered. Unlike other C language books that are full of abstract examples, this book is full of a large number of C programming examples from the real world, which have high reference value for C programmers. In addition, each chapter ends with an interesting "easy look, appendix A "programmer's job interview secrets" is a good material for programmers in any language to enhance their confidence before applying for a job.
I suspect that real C experts may not need to read this book.
-- From content to organization, to the style of writing, this is an easy and pleasant advanced reading book from cainiao to masters. Therefore, it should have a wider audience. Junior programmers often need enthusiastic encouragement. when reading this book, you will be deeply infected by the author's passion for programming.
The world is not perfect. I think the drawback of this book is that, like most mediocre C language books, it adds a chapter about C ++. In today's opinion, this description is neither comprehensive nor fair. However, since the author observed C ++ from the perspective of a C programmer in 1994, this is not surprising.
3. Samuel P. Harbison, guy l. Steele, C Language Reference Manual (fifth edition)
Photocopies (Mechanical Industry Press), Chinese version (Mechanical Industry Press)
In C language reference books, C: A Reference co-authored by Samuel P. Harbison and guy l. Steele
Manual is a great book. The fifth edition of this Manual introduces the c99 standard to meet the needs of C language learning in the new era. The book consists of two parts: the first part focuses on the C language features, and the second part comprehensively discusses the C standard library. This book covers c99, c89, traditional C, all versions of C Runtime libraries, and programming C code compatible with C ++.
This manual is only medium-thickness, but it provides a clearer description of the present and past aspects of the C language than other reference manuals that are "thicker than it. The technical details of this manual are accurate, organized, complete, detailed, and concise. In this case, it is superior in terms of breadth, depth, and accuracy. For medium and senior C programmers, this manual is worth keeping its case. It is almost certainly more frequently used than K & R.
4. David Hanson, "C language interface and implementation: Technology for creating reusable software", Mechanical Industry Press
C language interface and implementation: Techniques for creating reusable software
A major reason why C language has been able to survive for more than 30 years is its adaptability. In this age of "reuse", "Object-Oriented", "components", "Exception Handling", and other advanced mechanisms, C language can still rely on its small and elegant language features, it meets the requirements of modern software architecture to a considerable extent. However, to reach this level, the Application Skill of C must reach the highest level. In embedded, system software, and system development with extremely high performance requirements, developers must be at this level and master the advanced features of the C language, to meet the requirements of both efficiency and flexibility and reusability. Sorry, although C language technology is full of books, there are only a handful of works that focus on this peak domain. David
Hanson's c interfaces and implementations are the leaders.
David Hanson is one of the industry's leading partners in the free compiler. In this project, he is responsible for providing a highly reusable infrastructure. In constant practice, he fully uses ANSI
C forms a complete set of Reusable Component Libraries. This component library has a clear architecture and excellent performance, and provides many advanced features, such as Win32
Seh Exception Handling Mechanism, portable thread library, high-performance memory pool, and rich reusable data structure components. David
Hanson wrote his accumulated experiences in the process of creating these components and the refined analysis of its source code in this book. Of course, such a book is an outstanding product in the C language field. No wonder the late famous Technical writer Richard
"The technology in this book has been forgotten for many c programmers for too long," says Steven S ." This book is a rare task for core programmers who want to reach the highest level in C language applications.
Others
In addition to the above four books, I would like to recommend Andrew Koenig's book C traps and defects (People's post and telecommunications press) and c how
Two program books.
C expert Programming
Andrew
Koenig is one of the only C ++ experts in the world. His book may be the shortest classical C language. It briefly describes the traps and defects in C program design, including lexical traps, syntax traps, semantic traps, connections, library functions, pre-processors, and portability defects, the last chapter also provides suggestions on how to reduce program errors and the answers to the questions in the previous chapter. Despite the fact that this booklet was written before the c89 standard, the majority of traps and defects mentioned in the book even today, when c99 was already published, kept us alert as we did 15 years ago.
C Programming Tutorial
C how
Program has always been a very good C language introductory tutorial. The Chinese translation at hand is called "C Programming Tutorial" (published by the Mechanical Industry Press, second edition of the original book ). In addition to the formal description of the technology (supplemented by many Concise examples, each chapter is followed by summary, terminology, common programming errors, good programming habits, Performance advice, portability advice, software engineering comments, quizzes, and answers. The content of the entire book is clear, well organized, easy to read and understand. It is worth mentioning that there are many beginner books that can be discarded after reading them, and this one is an exception.
Conclusion
To a large extent, these books are limited to describing the C language and the standard library itself. If you want to learn more professional and field-related C programming technologies, you can continue reading specialized books on the basis of choosing to read these books. In addition, there are many similar works in the C language book field. These are only recommendations based on my own reading experience.
I am not a C programmer. I spend most of my time on C's descendant language, especially C ++. However, as you know, C ++ is not all about classes and templates, not all about object-oriented and generic programming. at a lower level, the implementations of C ++ are as always compatible with C to a great extent. The close relationship between C ++ and C determines that every C language classic should be a reader of C ++ programmers.
The world has changed so fast. Various new things emerge one after another, and they are dazzling and dazzling. People are also easily attracted by the colorful fancy things, and often forget to build the solid foundation of the past, present, and future. C language is one of these foundations. Today, many important software that we don't see in the world are written in C Language (C ++ and so on). They are silently supporting the operation of the information world.