Die Endgültigen C-Buch Leitfaden und Liste
Diese Frage versucht zu erfassen eine von der community gepflegte Liste von Qualität Bücher über die c Programmiersprache, die speziell auf die verschiedenen Qualifikationsniveaus.
C ist eine komplexe Programmiersprache, die schwer zu Holen auf-der-gehen Sie durch Lesen von online-tutorials. Ein umfassendes Buch ist oft der beste Weg, um die Sprache zu lernen, und die Suche nach einem guten Buch ist der erste Schritt. Es ist wichtig zu vermeiden, dass schlecht geschriebene Bücher, und noch wichtiger ist, Bücher, die enthalten schwere technische Fehler.
Bitte machen Sie änderungen, die akzeptierte Antwort, die Qualität der Bücher, mit einer ungefähren skill-level und einen kurzen Klappentext/Beschreibung zu jedem Buch. (Beachten Sie, dass die Frage ist gesperrt, so dass keine neuen Antworten akzeptiert werden. Eine einzelne Antwort wird gewartet mit der Liste)
Fühlen Sie sich frei, um die Debatte Buch Auswahl, Qualität, überschriften, Zusammenfassungen, Fähigkeit Niveaus, und alles, was Sie sehen, ist das falsch. Bücher, die als zufriedenstellend angesehen, die von der C community hier bleiben, um auf die Liste; der rest wird regelmäßig entfernt werden.
Für Bücher, die Bewertungen durch die Vereinigung von C-und C++ - Benutzer (ACCU), einen link zu diesen Bewertungen sollte Hinzugefügt werden, zusammen mit dem Buch.
Siehe auch:
- Anderen C-Ressourcen in der c tag wiki
- Eine ähnliche Liste für c++: Die Definitive C++ Book Guide and List
Diese Frage wurde diskutiert, auf Meta als Teil der Gelöscht Fragen Audit-2018.
Der Konsens war zu halten es wiederhergestellt und aktiv gepflegt.
- Nicht zu verharmlosen die Frage, was gut ist, aber...die meisten Menschen brauchen Jahre, um master K&R. Es ist mehr drin, als Sie denken. Die Schlankheit des Buches ist irreführend.
- Wenn Sie neu sind C, im Hinterkopf behalten, dass moderne C ist ANSI C und etwas Zeit vor, dass standard - (1989) können Wild out-of-date. Shooting für die Mitte der 90er Jahre oder später.
- Ich denke nicht, seien Sie vorsichtig, um zu springen auf der K&R Zug. K&R keine gute Adresse das Programm-design noch guter Programmierstil, vor allem, weil es ursprünglich geschrieben wurde, bevor jemand wusste, was guter Programmierstil war. Es erwähnt nicht, welche Teile der Sprache C, die sind überflüssig oder sogar gefährlich. Das Buch ist richtig aufgeführt als Nachschlagewerk, es sollte nicht verwendet werden, für die Lehr - /Lernprozesse, moderne Programmierung.
- Ich Stimme mit Dana, dass nichts geschrieben, bevor der ANSI/ISO-Normierungen in 89/90 erscheinen sollte, auf einer Liste wie diese. Sie können auch prüfen, unter Angabe der Bücher, die Adresse C99 und welche nicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warnung
Dies ist eine Liste von zufälligen Bücher unterschiedlicher Qualität. In der Ansicht von einigen Leuten (mit Begründung), ist es nicht mehr eine Liste der empfohlenen Bücher. Einige der hier aufgeführten Bücher enthalten eklatant falsche Aussagen oder lehren, falschen/schädlichen Praktiken. Menschen, die sich bewusst von solchen Büchern Bearbeiten können Sie diese Antwort, um zu helfen, es zu verbessern.
Sehen Die C-Buch Liste gegangen drunter und drüber. Was ist zu tun?, und auch Gelöscht Frage audit 2018.
Referenz (Alle Stufen)
The C Programming Language (2nd Edition) - Brian W. Kernighan und Dennis M. Ritchie (1988). Noch eine gute, kurze, aber dennoch vollständige Einführung in C (C90, nicht C99 oder höher), geschrieben vom Erfinder von C. Jedoch, die Sprache hat sich verändert und guter C-Stil entwickelt hat in den letzten 25 Jahren, und es gibt Teile des Buches, die zeigen Ihr Alter.
C: A Reference Manual (5th Edition) - Samuel P. Harbison und Guy R. Steele (2002). Ein hervorragendes Nachschlagewerk auf C, bis zu und einschließlich C99. Es ist nicht ein tutorial, und wahrscheinlich ungeeignet für Anfänger. Es ist toll, wenn Sie brauchen, um Schreibe einen compiler für C, wie die Autoren zu tun hatte, als Sie anfingen.
C Pocket Reference (O ' Reilly) - Peter Prinz und Ulla Kirch-Prinz (2002).
Der comp.lang.c FAQ - Steve Summit. Web-Seite mit Antworten auf viele Fragen über C.
Verschiedenen Versionen der Sprache C-Normen finden hier. Es gibt eine online-version des Entwurf C11 standard.
Der neue C-standard - eine kommentierte Referenz (Gratis PDF), Derek M. Jones (2009). Der "neue standard" bezeichnet, ist der alte C99-standard anstatt C11.
Begründung für die C99-Standard.
Anfänger
- Programmierung in C (4. Auflage) - Stephen Kochan (2014). Eine gute Allgemeine Einführung und tutorial.
C Primer Plus (5th Edition) - Stephen Prata (2004)
C Programming: A Modern Approach (2nd Edition) - K. N. King (2008). Ein gutes Buch für das lernen C.
Ein Buch über C - Al Kelley/Ira Pohl (1998).
Die C-Buch (Kostenlos Online) - Mike Banahan, Declan Brady und Mark Doran (1991).
C: How to Program (8. Auflage) - Paul Deitel und Harvey M. Deitel (2015). Viele gute Tipps und best practices für Anfänger. Der index ist sehr gut und dient als eine anständige Referenz (nur nicht voll umfassend und sehr flach).
Head First C - David Griffiths und Dawn Griffiths (2012).
Anfang C (5. Auflage) - Ivor Horton (2013). Sehr gute Erklärung von Zeigern, viele kleine, aber vollständige Programme.
Sams Teach Yourself C in 21 Tagen - Bradley L. Jones, Peter Aitken (2002). Sehr gutes Einführungs-Zeug.
Applications Programming in ANSI C - Richard Johnsonbaugh und Martin Kalin (1996).
Intermediate
Objekt-orientierte Programmierung mit ANSI-C (Kostenlose PDF) - Axel-Tobias Schreiner (1993).
Der code wird ein wenig verworren. Wenn Sie möchten, C++, C++.
C-Schnittstellen und Implementierungen - David R. Hanson (1997). Bietet Informationen zum definieren einer Grenze zwischen einer Schnittstelle und die Implementierung in C in eine generische und wiederverwendbare Mode. Außerdem veranschaulicht dieses Prinzip, indem Sie die Umsetzung von gemeinsamen Mechanismen und Datenstrukturen in C, wie Listen, sets, Ausnahmen, string-manipulation, memory-allocators und mehr. Im Grunde, Hanson nahm alle der code, den er geschrieben hatte, als Teil der Bau - Symbol und lcc und zog sich die besten bits in einer form, dass andere Leute wiederverwenden konnte für Ihre eigenen Projekte. Es ist ein Modell, das der gute C-Programmierung mit modernen design-Techniken (einschließlich Liskov die Abstraktion der Daten, die zeigen, wie die Organisation einer großen C-Projekt als eine Reihe von nützlichen Bibliotheken.
Das C-Puzzle-Buch - Alan R. Feuer (1998)
Die Standard-C-Bibliothek - P. J. Plauger (1992). Es enthält den kompletten source-code eine Implementierung der C89-standard-Bibliothek, zusammen mit der umfangreichen Diskussion über die design-und warum der code ist darauf ausgelegt, wie gezeigt.
21st Century C: C Tips from the New School - Ben Klemens (2012). Neben der C-Sprache, die das Buch erklärt, gdb, valgrind, autotools, und git. Die Kommentare zu style finden sich im letzten Teil (Kapitel 6 und darüber hinaus).
Algorithmen in C - Robert Sedgewick (1997). Gibt Ihnen ein echtes Verständnis der Implementierung von algorithmen in C, Sehr luzide und klar; wahrscheinlich machen Sie wegwerfen wollen alle anderen algorithmen, die Bücher und halten diese ein.
Zeiger auf C - Kenneth Rejek (1997).
Zeiger in C - Naveen Toppo und Hrishikesh Dewan (2013).
Problemlösungs-und Programm-Design in C (6. Edition) - Jeri R. Hanly und Elliot B. Koffman (2009).
Daten-Strukturen - Ein Fortschrittlicher Ansatz Mit C - Jeffrey Esakov und Tom Weiss (1989).
C Entfesselt - Richard Heathfield, Lawrence Kirby, et al. (2000). Nicht ideal, aber es lohnt sich fortgeschrittene Programmierer üben Probleme, die in diesem Buch geschrieben. Dies ist ein gutes Kochbuch-ähnlichen Ansatz vorgeschlagen, von comp.lang.c Mitwirkenden.
Experte
Expert C Programming: Deep C Secrets - Peter van der Linden (1994). Viele interessante Informationen und Krieg Geschichten aus dem Sun-compiler-team, aber ein wenig altmodisch an.
Advanced C Programming by Example - John W. Perry (1998).
Erweiterte Programmierung in der UNIX-Umgebung - Richard W. Stevens und Stephen A. Rago (2013). Umfassende Beschreibung der Verwendung des Unix-APIs aus C-code, aber nicht so viel über die mechanik der C-Codierung.
Uncategorized
Essential C (Kostenlose PDF) - Nick Parlante (2003). Beachten Sie, dass dieser Wert beschreibt die C90 Sprache an mehreren stellen (z.B. in der Diskussion
//
Kommentare und Platzierung von Deklarationen von Variablen an beliebigen stellen im code), es sollte also mit Vorsicht zu genießen.C-Programmierung Fragen Und Antworten: Häufig Gestellte Fragen - Steve Summit (1995). Dies ist das Buch von der web-site aufgeführt früher. Es deckt nicht C99 oder später standards.
C in a Nutshell - Peter Prinz und Tony Crawford (2005). Hervorragendes Buch, wenn Sie eine Referenz benötigen für C99.
Funktionale C - Pieter Hartel und Henk Muller (1997). Lehrt moderne Praktiken, die von unschätzbarem Wert für die low-level-Programmierung, mit der Gleichzeitigkeit und Modularität im Verstand.
Die Praxis der Programmierung - Brian W. Kernighan und Rob Pike (1999). Ein sehr gutes Buch zu begleiten, Sie K&R. Es verwendet C++ und Java auch.
C Fallen und Fallstricke von A. Koenig (1989). Sehr gut, aber die C-Stil-pre-Daten standard C, wodurch es weniger empfehlenswert, in diesen Tagen.
Einige haben argumentiert, für den Abbau von "Fallen und Stolpersteine" aus dieser Liste, weil es gefangen hat einige Leute in Fehler zu machen; andere setzen Fort, zu argumentieren, für seine Aufnahme. Vielleicht soll es auch betrachtet werden als "Experten" - Buch, denn es erfordert eine mäßig umfangreiche Kenntnisse in C um zu verstehen, was sich verändert, seit es veröffentlicht wurde.
Bauen Sie Ihre Eigenen Lisp — Daniel Holden (2014). Eine angenehme Art zu lernen C.
MISRA-C - Industrie-standard veröffentlicht und gepflegt durch die Motor Industry Software Reliability Association. Deckt C89 und C99.
Obwohl dies ist nicht ein Buch als solches, jeder erfahrene C-Programmierer sollte Lesen und umsetzen, so weit wie möglich. MISRA-C wurde ursprünglich als Richtlinien für sicherheitskritische Anwendungen im besonderen, aber es gilt für jedes Einsatzgebiet, wo stabile, bug-frei C code erwünscht ist (wer möchte nicht weniger bugs?). MISRA-C ist immer die de-facto-standard in der gesamten embedded-Industrie und wird immer beliebter, auch in anderen Programmier-Filialen. Es gibt (mindestens) drei Publikationen der Norm (1998, 2004, und die aktuelle version von 2012). Es gibt auch eine MISRA Compliance-Richtlinien-Dokument von 2016, und MISRA C:2012 geänderter Text 1 — Zusätzliche Sicherheits-Richtlinien für MISRA C:2012 (veröffentlicht im April 2016).
Beachten Sie, dass einige der Strikturen in die MISRA-Regeln sind nicht geeignet, um jedem Kontext. Zum Beispiel, Richtlinie 4.12 Staaten "die Dynamische Speicherzuordnung nicht verwendet werden". Dies ist angemessen in der embedded-Systeme für die MISRA-Regeln sind entwickelt; es ist nicht angebracht, überall. (Compiler, zum Beispiel, verwenden in der Regel dynamische Zuweisung von Speicher für Dinge wie die symbol-Tabellen, und zu tun, ohne dynamische Speicherzuweisung wäre schwierig, wenn nicht absurd.)
Archivierten Listen von ACCU-reviewed Bücher auf Anfänger-C (116 Titel) aus dem Jahr 2007 und Advanced C (76 Titel) aus dem Jahr 2008. Die meisten dieser nicht Aussehen, als auf der Hauptseite nicht mehr, und Sie können nicht durchsuchen Sie, dass durch das Thema sowieso.
Warnungen
Vorsichtig sein, die Bücher von Herbert Schildt. Insbesondere sollten Sie bleiben Weg von C: The Complete Reference" (4. Auflage, 2000), in einigen Kreisen bekannt als C: Der Komplette Unsinn.
Auch vorsichtig sein, das Buch Lassen Sie Uns C (16th Edition 2017) von Yashwant Kanetkar. Einige Menschen sehen es als schrecklich veraltete Buch, das lehrt, Turbo-C und hat viel von veralteten, irreführenden und schlichtweg falschen material.
Learn C The Hard Way (2015) von Zed Shaw. Ein Buch mit gemischten Bewertungen.
Eine Kritik dieses Buches von Tim Hentenaar:
"Learn C The Hard Way" ist kein Buch, dass ich empfehlen könnte, um jemanden, der Programmieren lernen und Lern C. Wenn du bist bereits ein kompetenter Programmierer in einige andere Verwandte Sprache, dann stellt es eine interessante und ungewöhnliche Ausstellung auf C, aber ich habe Vorbehalte gegen Teile des Buches. Jonathan Leffler
Veraltet
Anderen Mitwirkenden, nicht gutgeschrieben, in der revision history:
Alex Lockwood,
Ben Jackson,
Blasen,
klauen,
coledot,
Dana Robinson,
Daniel Holden,
Dervin Thunk,
dwc,
Erci Hou,
Garen,
haziz,
Johan Bezem,
Jonathan Leffler,
Joshua Partogi,
Lucas,
Lundin,
Matt K.,
mossplix,
Matthieu M.,
midor,
Nietzsche-jou,
Norman Ramsey,
r3st0r3,
ridthyself,
Robert S. Barnes,
Tim Ring,
Tony Bai,
VMAtm