Unter C ist es zwingend Notwendig alle Objekte vor ihrer Benutzung zu
deklarieren.
Diese Deklaration findet in einer Form statt, in der Sie am Anfang
des Programmes Variablen setzen. Variablen in Form von Feldern, Tabellen
und Strings können eine maximale Datenmenge von 65.535 Bytes aufweisen.
Aber keine Sorge, dies reicht in den meisten Fällen aus. Schließlich wurde
Linux auch unter C Programmiert.
Eine Variable ist eine Speicherstelle, die einen Namen, Typ und
Wert besitzt. Der Wert einer Variablen kann während des Programmablaufs
ständig geändert werden.
Beispiel:
Int beispiel=12;
(Programmcode)
beispiel=5;
Dieser Beispiel zeigt, wie komfortabel der Wert einer Variable verändert
werden kann.
Wie schon am Anfang erwähnt, müssen alle Variablen vor ihrer Benutzung
deklariert werden.
Beispiel:
Typ Name = Wert
Es ist nicht zwingen notwendig den Wert einer Variablen schon bei ihrer Deklaration zu setzen. Dies kann immer noch im Verlauf des Programmes passieren.
Typ:
Sie können aus einer weit ausgedehnten Palette an Typen ihre Wahl treffen.
Die nachfolgende Tabelle zeigt Ihnen die wichtigsten Variablen, die
Sie im Normalfall benutzen können. Der größte Unterschied zwischen verschiedenen
Typen besteht in der Regel in der Größe des reservierten Speicherbereiches.
Tabelle:
| auto | break | case | char | const | continue | ||
| default | do | double | else | enum | extern | ||
| float | for | goto | if | int | long | ||
| register | return | short | signed | sizeof | static | ||
| struct | switch | typedef | union | unsigned | void | ||
| volatile | while |
Name:
Sie können fast alle Bezeichnungen, die Ihnen Einfallen benutzen. Es
gibt jedoch einige reservierte Namen. Eine Liste der reservierten Namen
können Sie aus dieser Datei entnehmen.
Sie können jedoch 2 "reservierte" Namen zusammengefasst benutzen. "autounion"
ist ebenso erlaubt, wie "forum".
Beachten sie bitte, daß C zwischen groß und klein Schreibweise unterscheidet.
Sie erhalten also einen Fehler, wenn Sie die Variable "Test" deklarieren
und später die Variable "test" einsetzen wollen.
Beachten Sie es bitte, da dies eine sehr häufige Ursache für Fehler
ist.
Bei der Deklaration ihrer Variablen können Sie diese entweder einzeln deklarieren,
int name1;
int name2;
oder Sie fassen sie zusammen
int name1, name2;
Gültigkeitsbereich der Variablen
Wir unterscheiden in einem Programm 2 Arten von Variablen. Diese werden
durch einen Gültigkeitsbereich definiert.
Variablen, die außerhalb von Funktionen vereinbart wurden, sind von
allen Funktionen ansprechbar und heißen deshalb globale Variablen. Eine
Globale Variable steht in der Regel am Anfang des Programmes, bei der Definition
von Funktionen.
Beispiel:
void funktion1();
int variable; /* GLOBALE VERIABLE
Eine weitere Art von Variablen stellen die lokalen Variablen dar. Diese werden in einer Funktion definiert und sind deshalb nur dort gültig. Lokale Variablen müssen gleich nach der sich öffnenden Klammer ({) in einer Funktion deklariert werden.
Beispiel:
void funktion1()
{
int localevariable;
....
Um einer Variable einen Wert zuzuweisen, wird der Zuweisungsoperator = Verwendet.
Beispiel:
int variable = 12;
Variablenarten
Variablen belegen eine bestimmte Größe des Speichers. Jede Speicherstelle
kann daher Zahlen und Zeichen aufnehmen. Aus diesem Grund müssen wir auch
bei der Definition der Variablen, die Maximalgröße mit einplanen. Dies
geschieht durch die Bestimmung verschiedener der Variablenart.
Die nachfolgende Tabelle zeigt ihnen die möglichen Arten von Variablen:
| Art |
|
|
||
| char |
|
|
||
| unsigned char |
|
|
||
| int |
|
|
||
| unsigned int |
|
|
||
| short |
|
|
||
| unsigned short |
|
|
||
| long |
|
|
||
| unsigned long |
|
|
||
| float |
|
|
||
| double |
|
|
Konstanten
Eine weitere Art von Variablen, stellen die Konstanten dar. Diese
besitzen einen sehr Großen Vor- und Nachteil. So belegen Konstanten keinen
Speicherplatz. Ein gravierender Nachteil ist aber, daß diese wärend der
Ausführung des Programmes nicht verändert werden können.
Konstanten werden mit dem #define-Befehl am Anfang des Programmes definiert.
Beispiel:
#define FESTEZAHL=13
Sie sollten Konstanten immer dann verwenden, wenn Sie in Ihrem Programm
eine Zahl haben, die immer gleich bleibt. Das ermöglicht Ihnen eine sehr
schnelle und einfache Sourceänderung.
Es hat sich in der Vergangenheit eingebürgert für Konstanten Großbuchstaben
zu verwenden, damit sie besser von Variablen unterschieden werden können.
Zeichenvariablen
Wo wären wir denn hingekommen, wenn wir nur Zahlen in eine Variable
definieren könnten. Natürlich können auch Zeichenketten, so genannte Strings,
in eine Variable gelegt werden.
Variablen, die als char definiert wurden, haben die Funktion, die Aufnahme
von Zeichen.
Damit Zeichen als solche erkannt werden, müssen sie in ein Hochkomma
eingeschlossen werden.
Beispiel:
char kette[] = "Hier sehen Sie eine Zeichenkette";
Programmbeispiel:
Dieser Beispiel zeigt Ihnen die Verwendung und Gültigkeitsbereiche von Variablen. Zusätzlich sehen Sie, wie Operatoren unter C verwendet werden können. Mehr über Operatoren erfahren Sie in der nächsten Lektion.
Wie funktioniert dieses Beispiel?
Als erstes Deklarieren wir die beiden Prozeduren (prozedur1, prozedur2).
Der nächste Schritt besteht darin, die globalen Variablen zu setzen. So
wird mit dem Befehl int Variable=2 der Variable "Variable" ein Wert von
2 zugewiesen.
Als nächstes Deklarieren wir noch die Variable "ergebnis".
Nun startet unser Programm mit dem Aufruf des Subprogrammes prozedur1,
in dem er der loaklen Variable "ZAHL" einen Wert von 12 zuweist. Dieser
Wert ist nur in dem Subprogramm "prozedur1" gültig. Nach verlassen des
Unterprogrammes "vergisst" das Programm den Wert.
Wir folgen aber weiter unserem Programmablauf.
Nachdem die Lokale Variable deklariert wurde, setzen wir der Variable
"ergebnis" einen neuen Wert. Dieser setzt sich aus folgender Formel zusammen:
ergebnis = Variable + ZAHL
Es bleibt nur noch die Ausgabe und das Programm kann wieder in die
Hauptroutine zurückkehren.
In dieser wird die prozedur2 ausgeführt.
Das will ich Ihnen jedoch nicht erklären, da die Struktur von "prozedur2",
der Struktur von "prozedur1" gleicht.
Programmlisting:
#include <stdio.h>
void prozedur1();
void prozedur2();
int Variable=2;
/* Der Variable "Variable" wird ein Wert von 2 Zugewiesen (global) */
int ergebnis;
/* Variable "ergebnis" wird deklariert */
main()
{
prozedur1();
/*Aufruf der Prozedur "prozedur1" */
prozedur2();
/*Aufruf der Prozedur "prozedur2" */
}
void prozedur1()
{
int
ZAHL=12;
/* Der Variable "ZAHL" wird ein Wert von 12 Zugewiesen (lokal) */
ergebnis
= Variable + ZAHL;
/*Eine einfache Rechnung */
printf("%ld
+ %ld = %ld\n", ZAHL , Variable , ergebnis); /*Die Ergebnisse werden ausgegeben
*/
}
void prozedur2()
{
int
ZAHL=211;
/* Der Variable "ZAHL" wird ein Wert von 211 Zugewiesen (lokal) */
ergebnis
= Variable + ZAHL; /*Eine einfache Rechnung */
printf("%ld
+ %ld = %ld\n", ZAHL , Variable , ergebnis); /*Die Ergebnisse werden ausgegeben
*/
}
Nächster Themenbereich:Operatoren