26.02.2014 Aufrufe

EasyLinux Programme und Skripte (Vorschau)

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!