# 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 1970er** **Jahren** ü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](https://www.ionos.de/digitalguide/websites/web-entwicklung/programmieren-lernen-einstieg-grundlagen/) 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](https://www.ionos.de/digitalguide/websites/web-entwicklung/quellcode/ "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:

```none
#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.

```none
#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++++](https://www.ionos.de/digitalguide/websites/web-entwicklung/c/ "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](https://www.ionos.de/digitalguide/websites/web-entwicklung/programmierparadigmen/ "Programmierparadigmen"): Während C eine Programmiersprache für [imperative Programmierung](https://www.ionos.de/digitalguide/websites/web-entwicklung/imperative-programmierung/ "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](https://www.ionos.de/digitalguide/websites/web-entwicklung/net-framework-netfx/ "NET Framework - netfx"), 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, ei**ne 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.

---

### Tipp

Sie möchten [C++ lernen](https://www.ionos.de/digitalguide/websites/web-entwicklung/c-lernen/)? Schauen Sie in unser Tutorial!

---


This is a markdown version of: [https://www.ionos.de/digitalguide/websites/web-entwicklung/c-programmiersprache/](https://www.ionos.de/digitalguide/websites/web-entwicklung/c-programmiersprache/) for AI/LLM consumption.