Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Guru-Training<br />
C-<strong>Programme</strong><br />
Am Ende jedes Befehls steht ein Semikolon:<br />
Damit sagen Sie dem Compiler, dass<br />
der aktuelle Befehl abgeschlossen ist. Sie<br />
können beim Programmieren längere Befehle<br />
über mehrere Zeilen verteilen, also<br />
beispielsweise in main alternativ dies hier<br />
schreiben:<br />
printf<br />
("Hallo Welt\n");<br />
return<br />
0;<br />
Das ist bei diesem Beispiel nicht sinnvoll,<br />
bei längeren Kommandos hingegen<br />
schon. Das zweite Kommando return 0;<br />
verlässt die Funktion <strong>und</strong> legt dabei<br />
auch gleich den Rückgabewert fest. Da<br />
main das Hauptprogramm ist, bedeutet<br />
der return-Aufruf, dass hier das ganze<br />
Programm endet. Der Rückgabewert 0<br />
signalisiert bei Linux-<strong>Programme</strong>n, dass<br />
das Programm korrekt gearbeitet hat;<br />
Werte ungleich 0 stehen für einen Programmabbruch<br />
mit Fehlern. Sie können<br />
den Rückgabewert in der Shell abfragen.<br />
Dazu tippen Sie Folgendes:<br />
echo $?<br />
In „echten“ Funktionen, die dazu dienen,<br />
etwas zu berechnen, gibt es keinen Standardrückgabewert.<br />
Stattdessen geben<br />
diese mit return das Ergebnis der Berechnungen<br />
zurück, wie z. B. im Kommando<br />
return a + b; in der Funktion summe.<br />
Vielleicht haben Sie sich beim Beispielprogramm<br />
gefragt, woher der Compiler<br />
die Funktion printf kennt – diese ist nicht<br />
fest in die Programmiersprache C eingebaut,<br />
sondern wird über eine Standard-<br />
Eingabe-/Ausgabe-Bibliothek zur Verfügung<br />
gestellt. Damit der Compiler weiß,<br />
dass es die Funktion gibt (<strong>und</strong> welche Parameter<br />
sie erwartet), bindet das Programm<br />
eine Header-Datei ein:<br />
#include <br />
In der Datei stdio.h findet sich unter anderem<br />
die Beschreibung von printf, <strong>und</strong><br />
beim Kompilieren fügt der Compiler automatisch<br />
die Standardbibliothek libc.so.6<br />
zum Programm hinzu (siehe Kasten Header-Dateien).<br />
Kommentare<br />
C kennt eigentlich nur eine Möglichkeit,<br />
Code zu kommentieren: Ein Kommentar<br />
kann an fast jeder Stelle auftauchen, <strong>und</strong><br />
er beginnt mit /* <strong>und</strong> endet mit */. Zwei<br />
Beispiele dafür sehen Sie hier:<br />
printf ("Hallo\n"); /* Hallo */<br />
printf (/* Hallo */ "Hallo\n");<br />
Die erste Variante ist normal, dort folgt<br />
der Kommentar nach einem Befehl. Bei<br />
der zweiten Version steht der Kommentar<br />
mitten im printf-Aufruf – so etwas ist selten<br />
zu finden, aber erlaubt.<br />
Neben diesen klassischen C-Kommentaren,<br />
bei denen man Anfang <strong>und</strong> Ende mit<br />
/* ... */ kennzeichnet, ist es beim unter<br />
Linux verwendeten GNU-C-Compiler auch<br />
möglich, Kommentare in der Syntax zu<br />
verwenden, was erst mit der C-Nachfolgersprache<br />
C++ eingeführt wurde:<br />
printf ("Hallo\n");<br />
// Hallo<br />
Mit // leitet man einen Kommentar ein,<br />
<strong>und</strong> er läuft bis zum Ende der Zeile (muss<br />
also nicht explizit beendet werden).<br />
Fallunterscheidung<br />
Für die If-Then-Else-Konstruktion, mit der<br />
Sie – abhängig vom Ergebnis eines Tests<br />
– unterschiedlichen Code ausführen können,<br />
verwendet C auch das Schlüsselwort<br />
if. Es gibt kein then, aber ein else, <strong>und</strong> ein<br />
Stück Beispielcode sieht wie folgt aus:<br />
if (x