Book description
Schon mal davon geträumt, C zu lernen und dabei Spaß zu haben? Mit C von Kopf bis Fuß kann dieser Traum wahr werden: Die einzigartige Methode dieses Arbeitsbuchs setzt auf die spielerische, visuell abwechslungsreiche Vermittlung von Wissen und orientiert dabei sich an den neuesten Lerntheorien. Das Buch bietet Ihnen dabei ein unterhaltsames Lernerlebnis -- und spielt Ihnen C direkt ins Hirn.
C von Kopf bis Fuß behandelt nicht nur alle Basics wie die Sprachgrundlagen, Zeiger und Zeigerarithmetik sowie die dynamische Speicherverwaltung, sondern auch fortgeschrittene Themen wie Multithreading und Netzwerkprogrammierung. Darüber hinaus können Sie anhand von konkreten Workshops mehr in die Tiefe gehen, Programmiertechniken einüben und Ihre neuen Fähigkeiten auf die Probe stellen. C von Kopf bis Fuß macht Ihnen das Erlernen der Sprache nicht nur leichter, es hilft Ihnen auch, ein richtig guter C-Programmierer zu werden.
Table of contents
- C von Kopf bis Fuß
- Widmung
- Die Autoren von C von Kopf bis Fuß
- Über den Übersetzer dieses Buchs
- Wie man dieses Buch benutzt: Einführung
-
1. Erste Schritte mit C: Eintauchen
- C, die Sprache für kleine, schnelle Programme
- Aber wie sieht ein vollständiges C-Programm aus?
- Und wie führen Sie das Programm aus?
- Zwei Arten von Befehlen
- So sieht der Code bislang aus
- Kartenzählen? In C?
- Vergleiche kennen nicht nur Gleichheit ...
- Wie sieht der Code jetzt aus?
- Weichen stellen
- Wenn einmal keinmal ist ...
- Schleifen haben oft eine ähnliche Struktur ...
- Mit break ausbrechen ...
- Ihr C-Werkzeugkasten
-
2. Speicher und Zeiger: Worauf zeigst du?
- C-Code enthält Zeiger
- Ein Blick in den Speicher
- Segel setzen mit Zeigern
- Kurs Südost, Kapitän
- Versuchen wir, der Variablen einen Zeiger zu übergeben
- Speicherzeiger einsetzen
- Wie übergibt man einer Funktion einen String?
- Array-Variablen sind wie Zeiger ...
- Was der Computer denkt, wenn er Ihren Code ausführt
- Aber Array-Variablen sind nicht das Gleiche wie Zeiger
- Warum Arrays wirklich mit 0 beginnen
- Warum Zeiger Typen haben
- Zeiger für die Dateneingabe verwenden
- Aufgepasst mit scanf()
- fgets() ist eine Alternative zu scanf()
- Bereit zu einer Runde Kümmelblättchen?
- Oh ... es gibt ein Speicherproblem ...
- Stringliterale können nie aktualisiert werden
- Im Speicher: char *karten=“BDK”;
- Wenn Sie einen String ändern wollen, kopieren Sie ihn
- Im Speicher: char karten[]=“BDK”;
- Speicher speichern
- Ihr C-Werkzeugkasten
- 3. Strings: Stringtheorie
-
4. Kleine Werkzeuge erstellen: Eine Sache tun, und zwar gut
- Kleine Werkzeuge können große Probleme lösen
- So sollte das Programm funktionieren
- Aber Sie nutzen noch keine Dateien ...
- Sie können Ihre Daten umleiten
- Die Standardeingabe leitet man mit < um ...
- ... und die Standardausgabe mit >
- Aber es gibt ein Problem mit einigen Daten ...
- Die Standardfehlerausgabe
- Standardmäßig wird die Standardfehlerausgabe an den Bildschirm gebunden
- fprintf() schreibt in einen Datenstrom
- Aktualisieren wir den Code, damit er fprintf() nutzt
- Kleine Werkzeuge sind flexibel
- Ändern Sie geo2json nicht
- Eine andere Aufgabe erfordert ein anderes Werkzeug
- Eingaben und Ausgaben mit einer Pipe verbinden
- Das bermuda-Werkzeug
- Aber was ist, wenn Sie mehr als eine Datei ausgeben wollen?
- Der eigene Datenstrom
- main() kann mehr
- In der Von Kopf bis Fuß-Pizzeria aufgeschnappt
- Lassen Sie die Bibliothek für sich arbeiten
- Ihr C-Werkzeugkasten
-
5. Mehrere Quelldateien: Zerlegen und zusammenbauen
- Großes darf man nicht in Kleines stecken
- Mit Casts floats in ganze Zahlen packen
- Oh nein, arbeitslose Schauspieler am Werk ...
- Schauen wir uns an, was dem Code widerfahren ist
- Compiler mögen keine Überraschungen
- Die Deklaration von der Definition trennen
- Ihre erste Header-Datei
- Bei Gemeinsamkeiten ...
- Sie können Code auf mehrere Dateien aufteilen
- Kompilieren – was steckt dahinter?
- Der gemeinsame Code braucht einen Header
- Es ist kein Mysterium ... oder doch?
- Nicht alles neu kompilieren
- Erst aus Quellen Objektdateien machen
- Das Nachhalten der Dateien ist aufwendig
- Die Erstellung mit make automatisieren
- Wie make funktioniert
- make mit einem makefile über Ihren Code informieren
- Abheben!
- Ihr C-Werkzeugkasten
-
I. C-Workshop: Arduino
-
6. Structs, Unions und Bitfelder: Eigene Strukturen
- Wenn viele Daten wandern wollen
- Bürogespräche
- Strukturierte Datentypen mit Structs gestalten
- Fisch und nichts anderes
- Die Felder eines Struct lesen Sie mit dem ».«-Operator
- Kann man ein Struct in ein anderes stecken?
- Wie aktualisiert man ein Struct?
- Der Code klont die Kröte
- Sie brauchen einen Zeiger auf das Struct
- (*s).alter vs. *s.alter
- Manchmal erfordert eine Sache mehrere Datentypen
- Mit einer Union können Sie Speicherplatz sparen
- Wie man eine Union nutzt?
- Eine Enum-Variable speichert ein Symbol
- Kontrolle bis zur Bit-Ebene
- Bitfelder speichern eine beliebige Anzahl von Bits
- Ihr C-Werkzeugkasten
-
7. Datenstrukturen und dynamischer Speicher: Brücken bauen
- Flexibler Speicher gefällig?
- Verkettete Listen sind wie Datenketten
- Verkettete Listen gestatten Einfügungen
- Eine rekursive Struktur erstellen
- Mit C Inseln schaffen ...
- Werte in die Liste einsetzen
- Dynamische Speicherung auf dem Heap
- Hinterher den Speicher freigeben
- Mit malloc() Speicher anfordern ...
- O nein! Schon wieder die Schauspieler ...
- Reparieren wir den Code mit strdup()
- Geben Sie Speicher frei, wenn Sie ihn nicht mehr benötigen
- Beweisstück 1: der Quellcode
- Das System im Überblick
- Softwareforensik: valgrind
- Wiederholte Beweisaufnahme mit valgrind
- Die Beweisstücke
- Die Reparatur testen
- Ihr C-Werkzeugkasten
-
8. Fortgeschrittene Funktionen: Ihre Funktionen auf Vordermann bringen
- Auf der Suche nach dem Märchenprinzen ...
- Einer Funktion Code übergeben
- Sie müssen suchen() den Namen einer Funktion mitteilen
- Jeder Funktionsname ist ein Zeiger auf die Funktion ...
- ... aber es gibt keinen Funktionsdatentyp
- Wie man Funktionszeiger erstellt
- Ordnung mit der C-Standardbibliothek
- Ordnung schaffen mit Funktionszeigern
- Standardbriefe automatisieren
- Ein Array von Funktionszeigern erstellen
- Funktionen deeehnbar machen
- Ihr C-Werkzeugkasten
-
9. Statische und dynamische Bibliotheken: Code-Wiederverwendung
- Code, den Sie auf die Bank bringen können
- Spitze Klammern sind für Standard-Header
- Aber was ist, wenn Sie Code gemeinsam nutzen wollen?
- Header-Dateien gemeinsam nutzen
- Objektdateien über den vollständigen Pfadnamen teilen
- Ein Archiv enthält .o-Dateien
- Mit dem ar-Befehl ein Archiv erstellen ...
- Schließlich die anderen Programme kompilieren
- Fit von Kopf bis Fuß expandiert
- Kalorien berechnen
- Die Geschichte ist leider etwas komplizierter ...
- Programme bestehen aus vielen Teilen ...
- Dynamisches Linken erfolgt zur Laufzeit
- Kann man ein Archiv zur Laufzeit linken?
- Erst die Objektdateien erstellen
- Der Name Ihrer dynamischen Bibliothek ist plattformabhängig
- Ihr C-Werkzeugkasten
-
6. Structs, Unions und Bitfelder: Eigene Strukturen
-
II. C-Workshop: OpenCV
-
10. Prozesse und Systemaufrufe: Grenzverletzungen
- Systemaufrufe sind Ihr heißer Draht zum Betriebssystem
- Dann bricht jemand in das System ein ...
- Sicherheit ist nicht das einzige Problem
- Die exec()-Funktionen bieten Ihnen mehr Kontrolle
- Es gibt diverse exec()-Funktionen
- Die Array-Funktionen: execv(), execvp(), execve()
- Umgebungsvariablen übergeben
- Die meisten Systemaufrufe scheitern auf gleiche Weise
- Nachrichten lesen mit RSS
- exec() ist die Ziellinie für Ihr Programm
- Mit fork() + exec() einen Kindprozess starten
- Ihr C-Werkzeugkasten
-
11. Interprozesskommunikation: Ein nettes Gespräch
- Eingabe und Ausgabe umleiten
- Ein Blick in einen typischen Prozess
- Eine Umleitung ersetzt einfach die Datenströme
- fileno() nennt Ihnen den Dateideskriptor
- Manchmal muss man warten ...
- Mit dem Kind verbunden bleiben
- Prozesse mit Pipes verbinden
- Fallstudie: Storys in einem Browser öffnen
- Im Kind
- Im Elternprozess
- Eine Webseite in einem Browser öffnen
- Der Tod eines Prozesses
- Signale abfangen und eigenen Code ausführen
- sigactions werden mit sigaction() registriert
- Den Code den Signal-Handler nutzen lassen
- Mit kill Signale senden
- Ihrem Code einen Weckruf senden
- Ihr C-Werkzeugkasten
-
12. Sockets und Netzwerke: 127.0.0.1 ist ein toller Ort
- Der Internet-Knock-Knock-Server
- Knock-Knock-Server im Überblick
- BLAB: Wie Server mit dem Internet reden
- Ein Socket ist kein billiger Datenstrom
- Manchmal startet der Server nicht korrekt
- Warum Mama gepredigt hat, immer auf die Fehler zu achten
- Vom Client lesen
- Der Server kann immer nur mit jeweils einer Person reden
- Sie können einen eigenen Prozess für jeden Client forken
- Einen Webclient schreiben
- Clients an die Macht
- Ein Socket für eine IP-Adresse erstellen
- getaddrinfo() ermittelt Adressen zu Domains
- Ihr C-Werkzeugkasten
-
13. Threads: Parallelwelten
- Aufgaben verrichtet man nacheinander ... oder auch nicht ...
- ... und Prozesse sind nicht immer die Antwort
- Einfache Prozesse tun eine Sache nach der anderen
- Zusätzliches Personal: Threads
- Wie man Threads erstellt?
- Threads mit pthread_create erstellen
- Der Code ist nicht Thread-sicher
- Sie müssen Verkehrszeichen einführen
- Einen Mutex als Verkehrszeichen nutzen
- Ihr C-Werkzeugkasten
-
10. Prozesse und Systemaufrufe: Grenzverletzungen
-
III. C-Workshop: Blasteroids
- A. Was übrig bleibt: Die Top Ten der Dinge (die wir nicht behandelt haben)
- B. C-Themen: Zusammenfassungen im Überblick
- Stichwortverzeichnis
- Impressum
Product information
- Title: C von Kopf bis Fuß
- Author(s):
- Release date: September 2012
- Publisher(s): O'Reilly Verlag
- ISBN: 97833868993868
You might also like
book
C# von Kopf bis Fuß, Second Edition
Schnappen Sie sich einen Stift, werfen Sie Ihren Rechner an und begeben Sie sich auf eine …
book
C# von Kopf bis Fuß, 3rd Edition
Dieses Standardwerk aus der beliebten „von Kopf bis Fuß“-Reihe nimmt den Leser auf eine Erlebnistour durch …
book
Netzwerke von Kopf bis Fuß
Frustriert von Bücher zu Netzwerkthemen, die nur so strotzen vor unverständlichen Abkürzungen? Netzwerke von Kopf bis …
book
Java™ von Kopf bis Fuß
Java von Kopf bis Fuß ist eine umfassende Erlebnistour durch die Objektorientierte Programmierung und Java. Ganz …