1 Einstieg in die Welt von C
Im ersten Kapitel geht es zunächst um eher theoretische Themen, Sie werden hier also noch kein Programm schreiben. Dies ist so, weil Sie bestimmte Voraussetzungen benötigen, um Ihr erstes Programm zu erstellen und lauffähig zu machen. Denn C ist keine Skriptsprache, wie etwa Python, bei der Sie Ihre Programme direkt von der Shell aus aufrufen können.
1.1 Die Sprache C
Zur Drucklegung ist der C18-Standard aktuell. Er hat den C11-Standard (auch: ISO/IEC 9899:2011) abgelöst. Im Gegensatz zu dem 2011 eingeführten C11-Standard, der den C99-Standard abgelöst hat, sind beim C18-Standard aber keine neuen Funktionen hinzugekommen. Bei C18 geht es nicht um neue Sprach-Features, sondern die Neuerungen bestehen zu einem großen Teil aus Verbesserungen, vor allem Sicherheits-Updates. Für den Einstieg in C ist es nun zunächst, unabhängig vom verwendeten Standard, wichtig zu wissen, dass diese Programmiersprache aus zwei Teilen besteht, die aufeinander aufbauen:
-
Eigentlicher Sprachkern mit der Syntax und Semantik von C
Der eigentliche Sprachkern umfasst im Grunde nur wenige Anweisungen und Schlüsselworte, was C zu einer sehr kleinen und schlanken Sprache macht. Im Sprachkern sind Elemente wie die eingebauten Datentypen, die Verwendung von geschweiften Klammern für Anweisungsblöcke und von runden Klammern für Funktionen, verschiedene Kontrollstrukturen wie bedingte Anweisungen oder Schleifen, Zeiger usw. enthalten. Was Schlüsselworte, Variablentypen, Zeiger, Schleifen und Anweisungsblöcke sind, ist zum großen Teil Thema dieses Buches. -
Standardbibliothek von C
Die Standardbibliothek von C besteht aus vielen externen Bibliotheksdateien, die bei Bedarf zu einem Programm hinzugefügt werden können. Somit liegen beispielsweise Ein- und Ausgabefunktionen, Dateizugriffe, Speicherverwaltung, mathematische Operationen oder die Verarbeitung von Zeichenketten in einzelnen Modulen vor, die Sie je nach Bedarf einbinden können. Auch das Arbeiten mit der Standardbibliothek ist Bestandteil dieses Buches.
Gerade durch die Trennung von Sprachkern und Standardbibliothek sind C und die damit erstellten Programme so kompakt. Dadurch eignet sich C auch sehr gut für die Systemprogrammierung, weil Sie die optionalen Module der Standardbibliothek einfach weglassen können, wenn es keinen Sinn macht, sie zu verwenden. Dies trifft beispielsweise für die Bibliothek stdio.h (Standardein-/-ausgabe) zu, die Sie z. B. nicht zwingend verwenden müssen, wenn Sie nur eine Lichtsteuerung programmieren wollen.
Erwartungen an dieses Buch
Dieses Buch ist nicht als Kompendium für C konzipiert, sondern als Grundkurs. Sie lernen elementare Paradigmen von C kennen, mit dem Ziel, die Grundlagen des Sprachkerns von C verwenden zu können. Dasselbe gilt für die Standardbibliothek von C: Auch hier lernen Sie nur die grundlegenden Module kennen – für die komplette Standardbibliothek wäre wohl der doppelte Seitenumfang nötig. Dieses Buch ist also auch keine technische Spezifikation zu C bzw. zur ISO/IEC 9899:2011 oder C18. Wenn Sie sich tiefer in die Details von C einlesen wollen, empfehlen wir Ihnen The final draft, N1570 auf der Webseite http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf. Aber, wie gesagt, Sie müssen Vorsicht walten lassen: Den Standard zu lesen und zu verstehen, braucht viel Zeit und Ausdauer.