15 hervorragende kostenlose Bücher zum Erlernen von C

C ist eine universelle, prozedurale, portable Hochsprachenprogrammierung, die zu den beliebtesten und einflussreichsten Sprachen gehört. Sie wurde entwickelt, um mit einem einfachen Compiler kompiliert zu werden, um einen Low-Level-Zugriff auf den Speicher zu ermöglichen, um Sprachkonstrukte bereitzustellen, die sich effizient auf Maschinenbefehle abbilden lassen, und um eine minimale Laufzeitunterstützung zu erfordern. Viele Programmiersprachen haben C viel zu verdanken. Es ist so etwas wie die Lingua franca in der Welt der Programmierung geworden.

C ist relativ einfach zu verstehen. Es erlaubt dem Programmierer, Programme auf eine klare, einfache und logische Weise zu organisieren. Es ist eine sehr flexible, praktische und kompakte Sprache mit einer leicht zu lesenden Syntax. In C geschriebener Code läuft schnell, mit einfachem Zugang zu den Low-Level-Einrichtungen des Computers. Compiler-Direktiven machen es möglich, eine einzige Version eines Programms für verschiedene Architekturen zu kompilieren.

C steht für Freiheit. Deshalb ist es sinnvoll, C mit Büchern zu lernen, die ebenfalls Freiheit verkörpern. Werfen Sie einen Blick auf meine Auswahl und sehen Sie, ob eines davon Sie anspricht.

1. Das C-Buch von Mike Banahan, Declan Brady und Mark Doran

Das C-Buch

Das C-Buch

Das C-Buch richtet sich an Programmierer, die bereits einige Erfahrung mit einer modernen prozeduralen Hochsprache haben.

Sie sollten bereits mit Anweisungen, Variablen, bedingter Ausführung, Arrays, Prozeduren (oder Unterprogrammen) usw. vertraut sein.

Das Buch konzentriert sich auf die Besonderheiten von C. Vor allem die Art und Weise, wie C verwendet wird, steht im Mittelpunkt. Das Buch ist sowohl informativ als auch gut zu lesen.

Die Kapitel umfassen:

  • Eine Einführung in C
  • Variablen und Arithmetik – führt in einige der Grundlagen von C ein, einschließlich Schlüsselwörter und Bezeichner, Deklaration von Variablen, reelle Typen, ganzzahlige Typen, Ausdrücke und Arithmetik sowie Konstanten
  • Flusskontrolle und logische Ausdrücke – betrachtet die verschiedenen Möglichkeiten, wie die Flusskontrolle-Anweisungen in einem C-Programm verwendet werden können, einschließlich einiger Anweisungen, die bisher noch nicht vorgestellt wurden. Flusskontrolle, weitere logische Ausdrücke und seltsame Operatoren
  • Funktionen – die Art der Funktionen, Rekursion und Argumentübergabe und Verknüpfung
  • Arrays und Zeiger – Arrays, Zeiger, Zeichenbehandlung, sizeof und Speicherzuweisung, Zeiger auf Funktionen, Ausdrücke mit Zeigern, Arrays, der &Operator und Funktionsdeklarationen
  • Strukturierte Datentypen – Strukturen, Unions, Bitfelder, Enums, Qualifier und abgeleitete Typen, und Initialisierung
  • Der Präprozessor – wie der Präprozessor funktioniert, und Direktiven
  • Spezialisierte Bereiche von C – Deklarationen, Definitionen und Zugänglichkeit, typedef, const und volatile, und Sequenzpunkte
  • Bibliotheken – Diagnose, Zeichenbehandlung, Lokalisierung, Grenzen, mathematische Funktionen, nicht-lokale Sprünge, Signalbehandlung, variable Anzahl von Argumenten, Ein- und Ausgabe, formatierte E/A, Zeichen-E/A, unformatierte E/A, Funktionen mit wahlfreiem Zugriff, allgemeine Hilfsprogramme, Stringbehandlung, und Datum und Uhrzeit
  • Complete Programs in C – alles zusammen, Argumente für main, Interpretation von Programmargumenten, ein Mustervergleichsprogramm und ein anspruchsvolleres Beispiel

Die Autoren geben dem Leser die Erlaubnis, mit dem Buch zu machen, was er will, vorausgesetzt, die Autoren und ihr Copyright werden anerkannt. Mike Banahan hat bestätigt, dass das Buch tatsächlich unter der Creative Commons License steht.

Lesen Sie das Buch

2. C Elements of Style von Steve Oualline

C Elements of Style

C Elements of Style

C Elements of Style ist ein nützlicher Leitfaden, der die Grundsätze eines guten Programmierstils behandelt und C- und C++-Programmierern beibringt, wie man Code schreibt, der von anderen leicht gelesen, verstanden und gepflegt werden kann. Egal, ob Sie Student oder professioneller Programmierer sind, Sie werden von den vielen Tipps und Techniken zur Erstellung von elegantem, zuverlässigem Code profitieren.

Das Buch versucht dem Leser zu zeigen, wie man einen guten Programmierstil in seinen Code einbaut. Da der Computer nur den Code liest und der Mensch sich auf die Kommentare konzentriert, bezieht sich ein guter Programmierstil auf beide Teile eines Programms.

Das ultimative Ziel ist es, einen gut entworfenen, gut geschriebenen Code zu erstellen, der nicht nur eine effektive Nutzung des Computers ermöglicht, sondern auch sorgfältig konstruierte Kommentare enthält, die dem Menschen helfen, ihn zu verstehen. Diese Bedingung wird das Debuggen, die Wartung und den Verbesserungsprozess erleichtern, was letztendlich die Lesbarkeit, die Portabilität, die Zuverlässigkeit und die Wartbarkeit Ihres Codes verbessern wird.

In diesem Buch finden Sie Richtlinien zum Schreiben von Kommentaren, zur Programmüberschrift, zum Festlegen von Variablennamen, zur Anweisungsformatierung, zu Anweisungsdetails, zum Schreiben von Präprozessoren, zum Organisieren von Verzeichnissen und zum Erstellen von Makefiles.

Dieses Buch ist unter der Creative Commons License veröffentlicht.

Lesen Sie das Buch

3. Eine Einführung in den GCC von Brian Gough

Eine Einführung in den GCC

Eine Einführung in den GCC

Eine Einführung in den GCC bietet eine Einführung in die GNU C und C++ Compiler, gcc und g++, die Teil der GNU Compiler Collection (GCC) sind.

Nach der Lektüre dieses Buches werden Sie wissen, wie man ein Programm kompiliert, grundlegende Compiler-Optionen zur Optimierung und Fehlersuche verwendet.

Dieses Buch erklärt, wie man den Compiler selbst benutzt. Basierend auf jahrelanger Beobachtung von Fragen, die auf Mailinglisten gepostet wurden, führt es den Leser direkt zu den wichtigen Optionen des GCC. Das Buch lehrt nicht C.

Kapitel:

  • Einführung
  • Kompilieren eines C-Programms – beschreibt, wie man C-Programme mit gcc kompiliert. Programme können aus einer einzigen Quelldatei oder aus mehreren Quelldateien kompiliert werden und können Systembibliotheken und Headerdateien verwenden
  • Kompilierungsoptionen – beschreibt andere häufig verwendete Compileroptionen, die im GCC verfügbar sind. Diese Optionen steuern Funktionen wie die Suchpfade, die zum Auffinden von Bibliotheken und Include-Dateien verwendet werden, die Verwendung zusätzlicher Warnungen und Diagnosen, Präprozessormakros und C-Sprachdialekte
  • Verwendung des Präprozessors – beschreibt die Verwendung des GNU C-Präprozessors cpp, der Teil des GCC-Pakets ist. Der Präprozessor erweitert die Makros in den Quelldateien, bevor sie kompiliert werden. Er wird automatisch aufgerufen, wenn GCC ein C- oder C++-Programm verarbeitet
  • Kompilieren zum Debuggen – bietet die Option -g debug, um zusätzliche Debugging-Informationen in Objektdateien und ausführbaren Dateien zu speichern. Diese Debugging-Informationen ermöglichen es, Fehler von einer bestimmten Maschinenanweisung bis zur entsprechenden Zeile in der ursprünglichen Quelldatei zurückzuverfolgen
  • Kompilieren mit Optimierung – GCC ist ein optimierender Compiler. Er bietet eine breite Palette von Optionen, die darauf abzielen, die Geschwindigkeit zu erhöhen oder die Größe der von ihm erzeugten ausführbaren Dateien zu reduzieren
  • Kompilieren eines C++-Programms – beschreibt, wie man GCC verwendet, um in C++ geschriebene Programme zu kompilieren, und die für diese Sprache spezifischen Befehlszeilenoptionen
  • Plattformspezifische Optionen – beschreibt einige der für gängige Plattformen verfügbaren Optionen: Intel- und AMD-x86-Optionen, x86-Erweiterungen, x86-64-Bit-Prozessoren, DEC-Alpha-Optionen, SPARC-Optionen, POWER/PowerPC-Optionen, Multi-Architektur-Unterstützung und Fließkomma-Probleme
  • Fehlerbehebung – GCC bietet mehrere Hilfe- und Diagnose-Optionen, um Probleme mit dem Kompilierungsprozess zu beheben
  • Compiler-bezogene Werkzeuge – beschreibt eine Reihe von Werkzeugen, die in Kombination mit GCC nützlich sind. Dazu gehören der GNU archiver ar zum Erstellen von Bibliotheken und die GNU Programme gprof und gcov zum Testen der Abdeckung
  • Wie der Compiler arbeitet – beschreibt im Detail, wie GCC Quelldateien in eine ausführbare Datei umwandelt. Die Kompilierung ist ein mehrstufiger Prozess, an dem mehrere Werkzeuge beteiligt sind, darunter der GNU Compiler selbst (über die gcc- oder g++-Frontends), der GNU Assembler as und der GNU Linker ld. Der komplette Satz von Werkzeugen, die im Kompilierungsprozess verwendet werden, wird als Toolchain bezeichnet
  • Untersuchung kompilierter Dateien – beschreibt mehrere nützliche Werkzeuge zur Untersuchung des Inhalts von ausführbaren Dateien und Objektdateien
  • Gängige Fehlermeldungen – beschreibt die häufigsten Fehler- und Warnmeldungen, die von gcc und g++ erzeugt werden. Jeder Fall wird von einer Beschreibung der Ursachen, einem Beispiel und Vorschlägen für mögliche Lösungen begleitet
  • Hilfe holen – wenn der Leser auf ein Problem stößt, das in dieser Einführung nicht behandelt wird, gibt es mehrere Referenzhandbücher, die GCC und sprachbezogene Themen ausführlicher beschreiben

Dieses Buch wird unter der GNU Free Documentation License veröffentlicht.

Lesen Sie das Buch

Nächste Seite: Seite 2 – Eine Einführung in C & GUI und weitere Bücher

Seiten in diesem Artikel:
Seite 1 – The C Book und weitere Bücher
Seite 2 – An Introduction to C & GUI Programming und weitere Bücher
Seite 3 – The GNU C Reference Manual und weitere Bücher
Seite 4 – Essential C und weitere Bücher
Seite 5 – Beej’s Guide to Network Programming und weitere Bücher

Alle Bücher in dieser Reihe:

Free Programming Books
Java General-purpose, concurrent, class-based, object-oriented, high-level language
C General-purpose, procedural, portable, high-level language
Python General-purpose, structured, powerful language
C++ General-purpose, portable, free-form, multi-paradigm language
C# Combines the power and flexibility of C++ with the simplicity of Visual Basic
JavaScript Interpreted, prototype-based, scripting language
PHP PHP has been at the helm of the web for many years
HTML HyperText Markup Language
SQL Access and manipulate data held in a relational database management system
Ruby General purpose, scripting, structured, flexible, fully object-oriented language
Assembly As close to writing machine code without writing in pure hexadecimal
Swift Powerful and intuitive general-purpose programming language
Groovy Powerful, optionally typed and dynamic language
Go Compiled, statically typed programming language
Pascal Imperative and procedural language designed in the late 1960s
Perl High-level, general-purpose, interpreted, scripting, dynamic language
R De facto standard among statisticians and data analysts
COBOL Common Business-Oriented Language
Scala Modern, object-functional, multi-paradigm, Java-based language
Fortran The first high-level language, using the first compiler
Scratch Visual programming language designed for 8-16 year-old children
Lua Designed as an embeddable scripting language
Logo Dialect of Lisp that features interactivity, modularity, extensibility
Rust Ideal for systems, embedded, and other performance critical code
Lisp Unique features – excellent to study programming constructs
Ada ALGOL-like programming language, extended from Pascal and other languages
Haskell Standardized, general-purpose, polymorphically, statically typed language
Scheme A general-purpose, functional language descended from Lisp and Algol
Prolog A general purpose, declarative, logic programming language
Forth Imperative stack-based programming language
Clojure Dialect of the Lisp programming language
Julia High-level, high-performance language for technical computing
Awk Versatile language designed for pattern scanning and processing language
CoffeeScript Transcompiles into JavaScript inspired by Ruby, Python and Haskell
BASIC Beginner’s All-purpose Symbolic Instruction Code
Erlang General-purpose, concurrent, declarative, functional language
VimL Powerful scripting language of the Vim editor
OCaml The main implementation of the Caml language
ECMAScript Best known as the language embedded in web browsers
Bash Shell and command language; popular both as a shell and a scripting language
LaTeX Professional document preparation system and document markup language
TeX Markup and programming language – create professional quality typeset text
Arduino Inexpensive, flexible, open source microcontroller platform
TypeScript Strict syntactical superset of JavaScript adding optional static typing
Elixir Relatively new functional language running on the Erlang virtual machine
F# Uses functional, imperative, and object-oriented programming methods
Tcl Dynamic language based on concepts of Lisp, C, and Unix shells
Factor Dynamic stack-based programming language
Eiffel Object-oriented language designed by Bertrand Meyer
Agda Dependently typed functional language based on intuitionistic Type Theory
Icon Wide variety of features for processing and presenting symbolic data
XML Rules for defining semantic tags describing structure ad meaning
Vala Object-oriented language, syntactically similar to C#
Standard ML General-purpose functional language characterized as „Lisp with types“
D General-purpose systems programming language with a C-like syntax
Dart Client-optimized language for fast apps on multiple platforms
Markdown Plain text formatting syntax designed to be easy-to-read and easy-to-write
Kotlin More modern version of Java
Objective-C Object-oriented language that adds Smalltalk-style messaging to C
PureScript Small strongly, statically typed language compiling to JavaScript
ClojureScript Compiler for Clojure that targets JavaScript
VHDL Hardware description language used in electronic design automation

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.