C – die Programmiersprache (nicht nur) für Systemprogrammierung

Bei C handelt es sich um eine Programmiersprache, die seit den 1970er Jahren nicht mehr wegzudenken ist. Schließlich bildet C die Basis für moderne Betriebssysteme und ist somit integraler Bestandteil des Alltags von Entwicklerinnen und Entwicklern.

Primäre Anwendungsgebiete von C

Es ist nicht verwunderlich, dass C als Programmiersprache mittlerweile in einer Reihe von Anwendungsgebieten zum Einsatz kommt und eine der am weitesten verbreiteten Programmiersprachen ist. Schon seit ihrer Entwicklung in den 1970erJahren überzeugte die imperative Programmiersprache Entwicklerinnen und Entwickler verschiedener Anwendungen aufgrund ihrer außergewöhnlichen Schnelligkeit. Sie ist zudem eine beliebte Wahl für alle, die Programmieren lernen möchten.

Dass das primäre Anwendungsgebiet von C die Systemprogrammierung ist, überrascht aufgrund der Maschinennähe der Programmiersprache nicht. C hat das erklärte Ziel, eine möglichst exakte Abstraktion von nativem Assemblercode zu bieten. Auch die Portabilität der Programmiersprache sowie die Tatsache, dass Hardware im C-Code direkt angesprochen werden kann, machen C zu einer ausgezeichneten Wahl für die Programmierung von Treibern oder sogar ganzen Betriebssystemen.

Auch Compiler oder Programmbibliotheken anderer Programmiersprachen sowie ganze höhere Programmiersprachen basieren auf C und machen sich die Schnelligkeit und geringe Dateigröße von C-Programmen zunutze.

Vor- und Nachteile der Programmiersprache

C ist nicht ohne Grund eine beliebte Programmiersprache. Sie bietet eine Reihe von Vorteilen. Vor allem die hohe Ausführungsgeschwindigkeit von Programmen, die in C kompiliert sind, ist ein ausschlaggebender Punkt für die Nutzung der Sprache. Auch die Tatsache, dass C-Code sehr portabel ist und somit unter verschiedenen Betriebssystemen ausgeführt werden kann, ist ein Argument für die Nutzung von C. Darüber hinaus handelt es sich bei der Programmiersprache um eine sogenannte höhere Sprache, die die zentralen Konstrukte enthält, die Sie auch in anderen Programmiersprachen finden. So können Sie, wenn Sie C beherrschen, verhältnismäßig einfach zu anderen Sprachen wechseln.

Gerade für Anfängerinnen und Anfänger kann die Programmierung mit C allerdings auch nachteilig sein: Die strikte Hardware-Nähe der Sprache führt dazu, dass fehlerhafte Programme Speicherinhalt schnell durcheinanderbringen können. Auch der Lernaufwand für C ist im Vergleich zu anderen Programmiersprachen eher hoch. Grund hierfür ist u. a. die fehlende Objektorientierung.

Syntax

Die Syntax einer Programmiersprache ist das Regelwerk, das Sie befolgen müssen, um lauffähigen Quellcode zu schreiben. Wie jede Programmiersprache hat auch C einige syntaktische Besonderheiten, die Programmierende kennen sollten, um fehlerfreien Programmcode zu verfassen.

  • Semikola: Jede Anweisung in C endet mit einem Semikolon. Hierbei ist es egal, ob es sich um einen Funktionsaufruf oder um eine Variablen-Deklaration handelt.
  • Geschweifte Klammern: Anweisungsblöcke werden in C durch eine öffnende und eine schließende geschweifte Klammer gekennzeichnet. Eine Einrückung ist daher, anders als in einigen anderen Programmiersprachen, nicht erforderlich. Dennoch erhöht eine Einrückung des Codes die Lesbarkeit enorm und ist daher zu empfehlen.
  • Einbindung von Bibliotheken: Die Einbindung von Bibliotheken, um bereits vorimplementierte Funktionen nutzen zu können, erfolgt ganz am Anfang des C-Codes mittels Include-Statement:
#include <stdlib.h></stdlib.h>
  • Die main-Funktion: Der Start und das Ende eines Programms ist die sogenannte main-Funktion. Jedes C-Programm muss eine main-Funktion enthalten.
#include <stdio.h></stdio.h>
// Hier beginnt die main-Funktion, die die Zeichenkette „Hello world!“ auf dem Bildschirm ausgibt.
int main(void) {
	printf(„Hello world!“);
}
  • Kommentare: Einzeilige Kommentare werden in C mit einem doppelten Slash „//“ eingeleitet. Für mehrzeilige Kommentare verwendet man die Notation „/* Kommentarinhalt */“

Welche weiteren Programmiersprachen basieren auf C?

C bildet die Grundlage für eine Reihe weiterer Programmiersprachen, die vor allem für die System- und Software-Entwicklung eingesetzt werden. Direkt auf C basieren C++ und C#. Beide Programmiersprachen sind im Gegensatz zu der imperativen Programmiersprache C objektorientiert und bieten daher einen anderen Funktionsumfang. Auch die objektorientierte Programmiersprache Java basiert auf C und hat eine sehr ähnliche Syntax.

In der Webentwicklung gibt es ebenfalls Programmiersprachen, die auf C basieren. Ein populäres Beispiel ist die Skriptsprache PHP, die die Grundlage für viele Webanwendungen wie etwa WordPress bildet. Auch die Sprache JavaScript, die essenziell für interaktive Websites ist, basiert auf C.

Unterschiede zwischen C, C# und C++

Die Namensgebung der Programmiersprachen C, C++ und C#, die zu allem Überfluss manchmal auch noch C++++ genannt wird, kann aufgrund ihrer Ähnlichkeit zunächst ein bisschen verwirren. Die Unterschiede der einzelnen Sprachen schaffen hingegen Klarheit, denn C++, C# und C verfolgen unterschiedliche Programmierparadigmen: Während C eine Programmiersprache für imperative Programmierung ist, handelt es sich bei C# und C++ um objektorientierte Programmiersprachen.

Doch was ist der Unterschied zwischen C# und C++? Hier wird es bereits ein bisschen schwieriger. C ist eine Untermenge von C++, d. h. alle C-Programme können so auch in C++ verfasst werden. C++ enthält eine Reihe von Erweiterungen wie die Objektorientierung, die C noch nicht hatte.

C# ist zwar auch objektorientiert, gilt aber als leichter zu erlernen als C++. Dies liegt daran, dass die Speicherverwaltung bei C# weniger aufwendig ist. Außerdem ist C# ursprünglich für Windows und nicht für Linux gedacht und basiert auf dem .NET-Framework, sodass Benutzende die .NET-Runtime installiert haben müssen. C# eignet sich für Programme aller Art, wird aber vor allem für die Entwicklung von Spielen eingesetzt. Für hardwarenahe Programmierung ist C# eher weniger geeignet.

Die ersten Schritte, um C zu lernen

Wenn Sie sich entschieden haben, C zu lernen, brauchen Sie einen Compiler, um den von Ihnen geschriebenen Code in ausführbare Programme umwandeln zu können. Ein solcher ist unter Linux bereits vorinstalliert, aber auch unter Windows gibt es Compiler, mit denen Sie arbeiten können. Eine beliebte Lösung für Windows ist MinGW. Mit MinGW können Sie den Linux-C-Compiler GCC unter Windows nutzen.

Besonders, wenn Sie komplexere und größere Programme schreiben möchten, kann es sich außerdem lohnen, eine integrierte Entwicklungsumgebung (IDE) für die C-Programmierung herunterzuladen. Eine solche ist nicht zwingend notwendig, hilft Ihnen aber mit Syntax-Highlighting und einem integrierten Debugger bei komplizierteren Projekten. Für welche IDE Sie sich hierbei entscheiden, ist reine Geschmackssache. CLion ist für alle Betriebssysteme erhältlich und bietet viele nützliche Features an. Doch auch Visual Studio für Windows oder Xcode für MacOS unterstützen selbstverständlich das Programmieren von C-Programmen.