Ufos.c
startet, erhält man vom Compiler Ufos.obj
und später vom Linker Ufos.exe
.
In den meisten C-Compilern werden die Arbeiten von Compiler und Linker in einem Durchgang nacheinander erledigt. Teilweise sieht man »compiling« und »linking« als zwei Schritte aufgelistet (was sie ja auch sind), aber in Ihrer Entwicklungsumgebung läuft dies zusammen ab.
Wie der Compiler meldet auch der Linker Fehler, wenn er irgendetwas nicht versteht. In diesem Fall muss man die Fehlermeldung entziffern und das Programm neu kompilieren.
Obwohl wir mit einer Datei anfangen, haben wir zum Schluss mindestens drei Dateien auf der Festplatte: Ufos.c, Ufos.obj und Ufos.exe. Manche Compiler überschwemmen die Platte mit mehr Dateien. Wie man Ordnung schafft, sehen Sie am Ende dieses Kapitels.
Das erste C-Programm – eine alte Tradition
Seit den alten Römern enthält jedes Buch über Programmierung das traditionell erste C-Programm. Dieses Buch folgt der Regel, obwohl das C für Dummies-Buch mehr Selbstbewusstsein hat als andere Bücher über C. Also:
#include <stdio.h>
int main()
{
printf("Ade, grausame Welt!\n");
return 0;
}
Listing 2.1: Name: Goodbye.c
Treten Sie einen Schritt zurück und blinzeln Sie! So werden die Programme in diesem Buch vorgestellt.
Sie haben dieses Programm bereits im ersten Kapitel bei der Installation von Code::Blocks eingegeben.
Sie sollten sofort das Offensichtliche sehen. Was kommt Ihnen bekannt vor? Ja, Buchstaben aus dem Alphabet, a bis z, aber meist kleingeschrieben. Und einige der Zeichen haben Sie schon auf der Tastatur gesehen, die runden Klammern ()
und die geschweiften Klammern { }
. Bis auf printf
, int
und das komische \n
sollten Ihnen die anderen Wörter bekannt vorkommen (jedenfalls, wenn Sie ein wenig Englisch verstehen):
include
int
main
return
"Ade, grausame Welt!"
Das ist gut – bisher sieht C einfach schlecht aus.
Ihre Aufgabe lautet: Nehmen Sie den monströsen Text und verwandeln Sie ihn in ein Programm, das die folgende Zeile auf dem Bildschirm ausgibt:
Ade, grausame Welt!
Coole Leute sagen nicht »sie programmieren«, sondern sie »coden«. Weichlinge programmieren, Freaks coden.
Der Abschnitt »Wie die Sprache C aussieht« weiter hinten in diesem Kapitel behandelt die Details von Goodbye.c, wie es funktioniert und die wundervollen Kleinigkeiten darin. Schauen Sie nach, wenn Sie bereits jetzt mehr dazu wissen wollen.
In C für Dummies heißt das erste Programm
Goodbye
und es zeigt die Meldung Ade, grausame Welt!
an. Andere Bücher über C – eigentlich alle – nennen ihr erstes Programm Hallo
. Es zeigt die tolle Meldung Hallo Welt!
an. Ich schätze, das soll zeigen, wie lustig und sympathisch C ist. Oder die C-Programmierer glauben, dass die ganze Welt vor den Bildschirmen hockt und dies deshalb eine gelungene Begrüßung ist. Aber heutzutage beginnt fast jedes Buch über eine Programmiersprache mit einem Codefragment, das diesen Text auf dem Bildschirm ausgibt. Damit kann man sehr gut die Unterschiede zwischen verschiedenen Programmiersprachen erahnen.
Speichern! Kompilieren! Linken! Starten!
Vier Schritte sind notwendig, um ein C-Programm zu erstellen. Es handelt sich um Speichern, Kompilieren, Linken und Starten. Die meisten C-Umgebungen erledigen das Linken automatisch, manche sogar auch das Starten. Egal, ob es automatisch abläuft oder nicht – es ist vorhanden.
Speichern bedeutet, den Quelltext zu speichern. Man erstellt den Quelltext in einem Texteditor und speichert ihn als Textdatei mit der Endung c
.
Kompilierung ist der Vorgang, bei dem die Anweisungen im Quelltext vom Compiler in etwas übersetzt werden, das der Mikroprozessor des Computers verstehen kann.
Linken ist der Schritt, bei dem alle Anweisungen zu einem Programm zusammengepackt werden. (Zur Erinnerung: Das geschieht oftmals automatisch.)
Zum Schluss starten Sie das so erzeugte Programm. Ja richtig, es ist ein echtes Programm, genauso wie andere auf der Festplatte.
Das Programm, das übersetzt, heißt Compiler. Das Programm, das zusammensetzt, heißt Linker.
In integrierten Entwicklungsumgebungen wie Code::Blocks gibt es einen Menübefehl für den kompletten Vorgang. Dieser Befehl heißt dann zum Beispiel REBUILD oder BUILD AND RUN und befindet sich im Menü PROJECT.
Wenn Sie mit einem Compiler unter Windows arbeiten, passiert Ihnen oft Folgendes, wenn das Programm automatisch von der Entwicklungsumgebung gestartet wird: Ein Fenster geht kurz auf und wieder zu. Fertig. Wenn Sie schnell hinschauen, können Sie sehen, dass in diesem Fenster Ihr Programm lief. Das ist unbefriedigend. Sie werden sich später noch Tricks erarbeiten, wie Sie das Fenster länger sichtbar machen können, zunächst wenden Sie folgenden Trick an: Rufen Sie unter Windows im Startmenü den Befehl AUSFüHREN auf und geben Sie
cmd
ein. Ein Kommandozeilenfenster (auch als Eingabeaufforderung bekannt) öffnet sich. Wechseln Sie mithilfe von cd
in das Verzeichnis, in dem Ihr Programm gespeichert ist, und starten Sie es durch Eingabe von Goodbye
und . Voilà! Wie Sie sehen, bleibt die Ausgabe nun erhalten. Sie können das Fenster während der Arbeit offenhalten und das Programm hierüber immer wieder starten.
Übrigens, Code::Blocks hält für Sie netterweise das Fenster offen, bis Sie eine Taste gedrückt haben.
Die notwendigen Editier- und Kompilierkünste
Beim ersten Mal wird nicht gleich alles in Ihrem C-Programm glattgehen. Schnell hat sich ein Tippfehler in den Quelltext eingeschlichen, ein Beispiel: printf
wird prinft
oder nur print
. Falls das passiert, spuckt der Compiler einen Fehler aus und das Programm wird nicht erzeugt. Oder anstelle von Welt
schreibt das Programm Wetl
. Diese Art Missgeschick ist kein wirklicher Fehler. Es ist eher ein bisschen peinlich, dennoch, auch so was muss irgendwie repariert werden.
Um einen Fehler zu beheben, müssen Sie üblicherweise zwei Schritte erledigen:
1 Den Quelltext neu editieren und wieder speichern
2 Den Quelltext neu kompilieren und das reparierte Programm erzeugen
Das sind immer noch Schritte aus dem C-Entwicklungsprozess, den Sie schon kennenlernten. Als Programmierer versuchen Sie, so etwas nach Möglichkeit zu vermeiden. Im wirklichen Leben passiert es leider viel zu oft.
Es passiert.
Wie man Fehler behebt, wird besonders im nächsten Abschnitt behandelt. Dieses Kapitel erklärt Ihnen die notwendigen Schritte zur Reparatur des Quelltextes und zur Neuerstellung des Programms.