Schulungsübersicht
Einführung
- Überblick über die Funktionen und Anwendungen von C
Vorbereiten der Entwicklungsumgebung
- Auswahl einer IDE
- Den Compiler konfigurieren
Schreiben eines Beispielprogramms
- Definition des Problems
- Kodierung gemäß den Anforderungen
Definieren des Anwendungsbereichs von Variablen und Funktionen
- Verstehen von Geltungsbereich, Sichtbarkeit und Lebensdauer
- Arbeiten mit Speicherklassen: auto, extern, register, static
Verwaltung von Daten in einem C-Programm
- Jenseits primitiver Datentypen
- Arbeiten mit fortgeschrittenen Datentypen: Strukturen, verknüpfte Listen, usw.
- Speichern verschiedener Datentypen am selben Speicherplatz
Ändern der Eigenschaften einer Variablen
- Über Typmodifikatoren hinaus
- Arbeiten mit Typbezeichnern: konstant, flüchtig, etc.
Manipulation von Bits in C
- Arbeiten mit Daten, die kleiner als ein Byte sind
- Arbeiten mit Bitmanipulationsoperatoren
Steuerung des Programmablaufs
- Jenseits der Sequenzierung
- Verwendung der goto-Anweisung
Lesen und Schreiben von Daten
- Rekapitulation der Input/Output-Funktionen
- Verbesserung der Lesbarkeit der Ausgabe
Entwicklung von plattformübergreifendem Code
- Verständnis der Compiler-Direktiven
- Bedingte Kompilierung von Code
Verbesserung der Programmleistung
- Makros vs. Funktionen
- Definition von Makros zur Ausführung von Programmfragmenten
Dynamische Zuweisung von Speicher
- Vorteil der Verwendung von Zeigern: Ausführungsgeschwindigkeit
- Zeiger auf Funktionen
- Accessing Speicher und Manipulation der Adresse
Fehlersuche in einem C-Programm
- Fortgeschrittene Techniken zum Prüfen, Erkennen und Korrigieren von Fehlern
- Arbeiten mit gdb (Gnu Debugger)
Erstellen einer statischen Bibliothek
- Wie eine statische Bibliothek mit einer ausführbaren Datei verknüpft wird
- Erstellen einer statischen Bibliothek
Gemeinsame Bibliothek erstellen
- Statische Bibliotheken vs. gemeinsam genutzte Bibliotheken (dynamische Bibliotheken)
- Wie eine gemeinsam genutzte Bibliothek verknüpft und zur Laufzeit in den Speicher geladen wird
- Erstellen einer Shared Library
Abstrahieren von Daten in Ihrem Programm
- Überblick über Schnittstelle, Spezifikation und Implementierung
- Erstellen eines abstrakten Datentyps
- Regressionstest eines abstrakten Datentyps
Searching und Sortierung von Daten
- Search Arrays mit linearer Suche, binärer Suche, etc.
- Sortieren von Feldern mittels Auswahlsortierung, Einfügesortierung, Blasensortierung
Interprozess Communication und Signale
- Verstehen von Prozessen, Sockets und Signalen
- Implementierung von IPC unter Verwendung von gemeinsam genutzten Dateien, gemeinsam genutztem Speicher, Pipes, Nachrichtenwarteschlangen, Sockets, Semaphoren usw.
Ihr C-Programm parallel laufen lassen
- Gleichzeitige Ausführung verschiedener Teile eines Programms durch Multithreading
- Schreiben eines Threads
Fortgeschrittene Netzwerkarbeit Programming
- Rekapitulation von TCP, UDP, IP und anderen gängigen Protokollen
- Bedienung mehrerer Ports, Überleben bei plötzlichen Netzwerkunterbrechungen, usw.
- Schreiben leistungsfähiger Socket-APIs
Auf dem Weg zu qualitativ hochwertigem Code
- Peer Code Review und parallele Programmierung
- Die Bedeutung der iterativen Kodierung (Refactoring)
Zusammenfassung und Schlussfolgerung
Voraussetzungen
- C-Programmiererfahrung
Publikum
- Programmierer
- Entwickler
Erfahrungsberichte (2)
die Übungen und die Methodik
Javier MIllan Rios - si
Kurs - Advanced C Programming
Maschinelle Übersetzung
Ein interessender und umfassender Bereich
Maciej Perkowski - Nordic Semiconductor
Kurs - Advanced C Programming
Maschinelle Übersetzung