Schulungsübersicht
Einführung
- Überblick über C-Funktionen und Anwendungen
Vorbereitung der Entwicklungsumgebung
- Auswahl einer IDE
- Konfigurieren des Compilers
Erstellen eines Beispielprogramms
- Definieren des Problems
- Codierung nach den Anforderungen
Definition von Variablen- und Funktionsbereichen
- Bereich, Sichtbarkeit und Lebensdauer verstehen
- Mit Speicherklassen arbeiten: auto, extern, register, static
Datenmanagement in einem C-Programm
- Jenseits primitiver Datentypen
- Mit fortgeschrittenen Datentypen arbeiten: Strukturen, verkettete Listen usw.
- Verschiedene Datentypen an demselben Speicherort speichern
Ändern von Variableneigenschaften
- Jenseits von Typmodifizierern
- Mit Typprafixen arbeiten: const, volatile usw.
Bitmanipulation in C
- Mit Daten kleiner als ein Byte arbeiten
- Mit Bitmanipulationsoperatoren arbeiten
Ablaufsteuerung im Programm
- Jenseits von Sequenzen
- Verwendung des goto-Befehls
Daten lesen und schreiben
- Überblick über Eingabe-/Ausgabefunktionen
- Ausgabelesbarkeit verbessern
Cross-Platform-Code entwickeln
- Kompilerdirektiven verstehen
- Bedingtes Kompilieren von Code
Programmleistung optimieren
- Makros vs. Funktionen
- Makros definieren, um Programmfetzen auszuführen
Dynamischen Speicher zuweisen
- Vorteile der Verwendung von Zeigern: Ausführungszeit
- Zeiger auf Funktionen
- Auf Speicher zugreifen und die Adresse manipulieren
C-Programm debuggen
- Fortschrittliche Techniken zum Überprüfen, Erkennen und Korrigieren von Fehlern
- Mit gdb (Gnu Debugger) arbeiten
Eine statische Bibliothek erstellen
- Wie eine statische Bibliothek in eine ausführbare Datei eingebunden wird
- Eine statische Bibliothek erstellen
Eine dynamische Bibliothek erstellen
- Statische vs. dynamische Bibliotheken (geteilte Bibliotheken)
- Wie eine geteilte Bibliothek zur Laufzeit eingebunden und in den Speicher geladen wird
- Eine geteilte Bibliothek erstellen
Daten in Ihrem Programm abstrahieren
- Überblick über Schnittstellen, Spezifikationen und Implementierungen
- Einen abstrakten Datentyp erstellen
- Einen abstrakten Datentyp regredieren testen
Daten suchen und sortieren
- Arrays mit linearem Suchverfahren, binärem Suchverfahren usw. durchsuchen
- Arrays mit Selection Sort, Insertion Sort, Bubble Sort sortieren
Interprozesskommunikation und Signale
- Prozesse, Sockets und Signale verstehen
- IPC mit geteilten Dateien, geteiltem Speicher, Pipes, Nachrichtenwarteschlangen, Sockets, Semaphoren usw. implementieren
Ihr C-Programm parallel ausführen
- Verschiedene Teile eines Programms gleichzeitig durch Multithreading ausführen
- Einen Thread schreiben
Fortgeschrittene Netzwerkprogrammierung
- Überblick über TCP, UDP, IP und andere wichtige Protokolle
- Mehrere Ports bedienen, abrupte Netzwerkunterbrechungen überstehen usw.
- Mächtige Socket-APIs schreiben
Auf hochwertigen Code hinarbeiten
- Kollegialer Code-Review und parallele Programmierung
- Die Bedeutung iterativen Codierens (Refactoring)
Zusammenfassung und Schlussfolgerungen
Voraussetzungen
- Erfahrung in C-Programmierung
Zielgruppe
- 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