In diesem Kapitel erfahren Sie alles zu den einzelnen Datentypen in C, ohne die sich wohl kaum ein Programm realisieren lassen würde.
5 Basisdatentypen
Zu den Grundlagen der C-Programmierung gehört auch die Kenntnis der einzelnen Datentypen. Datentypen sind, wie der Name schon vermuten lässt, Arten von Variablen, in denen Sie Daten speichern können, um zu einem späteren Zeitpunkt wieder darauf zurückzugreifen. Diese Variablen bestehen aus zwei Teilen: dem Datentyp, der eine bestimmte Menge Arbeitsspeicher zugewiesen bekommt, und dem Namen der Variable, mit dem dieser Datentyp im Programm angesprochen werden kann.
Als Basisdatentypen werden einfache vordefinierte Datentypen bezeichnet. Dies umfasst in der Regel Zahlen (int, short int, long int, float, double und long double), Zeichen (char, wchar_t) und den (Nichts-)Typ (void).
5.1 Deklaration und Definition
Beginnen wir mit dem etwas unbequemeren Abschnitt. Die Begriffe Deklaration und Definition werden oft durcheinandergebracht oder auch als ein und dasselbe verwendet. Mit einer Deklaration machen Sie den Compiler mit einem Namen (Bezeichner) bekannt und verknüpfen diesen Namen mit einem Typ. Der Typ wiederum beinhaltet die Informationen über die Art der Bezeichner und bestimmt somit implizit die Aktionen, die auf dem Speicherobjekt zulässig sind. Bei einer Ganzzahl z. B. sind hierbei die arithmetischen Operationen +, -, *, / als Aktionen zulässig. Die Syntax einer einfachen Deklaration sieht somit immer wie folgt aus:
Typ name; Typ name1, name2, name3;
Mit Typ geben Sie immer den Datentyp an, und name ist immer der Bezeichner. Natürlich können Sie, wie Sie im zweiten Beispiel sehen, auch mehrere Bezeichner eines Typs durch Kommata voneinander trennen.
Mit einer Deklaration geben Sie dem Compiler nur Informationen zum Typ bekannt. Bis dahin wurde noch keine Zeile Maschinencode erzeugt, geschweige denn ein Speicherobjekt (Variable) angelegt.
Für das konkrete Speicherobjekt im Programm bzw. in dem ausführbaren Code wird die Definition vereinbart. Somit ist jede Definition gleichzeitig auch eine Deklaration. Gleiches gilt auch häufig andersherum, beispielsweise gibt die Deklaration einer Variable vom Datentyp int in der folgenden ausgeführten Art
int i;
den Namen des Speicherobjekts bekannt und vereinbart somit auch den Speicherplatz für das Objekt. Ebenso kann der Name einer Variablen mit dem Speicherklassenattribut extern vereinbart werden, ohne dass ein Objekt erzeugt wird. Damit kann es für jedes Objekt im Programm zwar beliebig viele Deklarationen geben, aber nur eine einzige Definition.
Hinweis |
Seit dem C99-Standard können in C (wie in C++) Deklarationen überall im Quelltext vorgenommen werden – worauf Sie allerdings wenn möglich der Lesbarkeit des Codes zuliebe verzichten sollten. Setzen Sie die Deklarationen noch vor den »arbeitenden« Anweisungen. |
Was ist eine Variable?
Eine Variable ist eine Stelle (Adresse) im Hauptspeicher (RAM), an der Sie einen Wert ablegen können und gegebenenfalls später wieder darauf zurückgreifen können. Neben einer Adresse hat eine Variable auch einen Namen, genauer gesagt einen Bezeichner, mit dem man auf diesen Wert namentlich zugreifen kann. Und natürlich belegt eine Variable auch eine gewisse Größe des Hauptspeichers, was man mit dem Typ der Variablen mitteilt. Rein syntaktisch kann man das wie folgt ausdrücken:
long lvar;
Hier haben Sie eine Variable mit dem Namen (Bezeichner) lvar vom Typ long, der üblicherweise vier Bytes (auf 32-Bit-Systemen) im Hauptspeicher (RAM) belegt. Wo (d. h. an welcher Speicheradresse) im Arbeitsspeicher Speicherplatz für diese Variable reserviert wird – hier vier Bytes –, können Sie nicht beeinflussen.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.