Cover Page

Anhang A
ASCII-Codes

Dezimal Hexadezimal Zeichen Kommentar
0 0x00 ^@ Null, \0
1 0x01 ^A
2 0x02 ^B
3 0x03 ^C
4 0x04 ^D
5 0x05 ^E
6 0x06 ^F
7 0x07 ^G Glocke, \a
8 0x08 ^H Rücktaste, \b
9 0x09 ^I Tabulator, \t
10 0x0A ^J
11 0x0B ^K Vertikaler Tabulator, \v
12 0x0C ^L Seitenvorschub, \f
13 0x0D ^M Wagenrücklauf, \r
14 0x0E ^N
15 0x0F ^O
16 0x10 ^P
17 0x11 ^Q
18 0x12 ^R
19 0x13 ^S
20 0x14 ^T
21 0x15 ^U
22 0x16 ^V
23 0x17 ^W
24 0x18 ^X
25 0x19 ^Y
26 0x1A ^Z
27 0x1B ^[ Escape
28 0x1C ^\
29 0x1D ^]
30 0x1E ^^
31 0x1F ^_
32 0x20 Leertaste, Beginn der sichtbaren Zeichen
33 0x21 ! Ausrufezeichen
34 0x22 Doppeltes Anführungszeichen
35 0x23 # Raute
36 0x24 $ Dollarzeichen
37 0x25 % Prozentzeichen
38 0x26 & Und-Zeichen
39 0x27 ' Apostroph
40 0x28 ( Klammer auf
41 0x29 ) Klammer zu
42 0x2A * Stern
43 0x2B + Plus
44 0x2C , Komma
45 0x2D - Minus
46 0x2E . Punkt
47 0x2F / Schrägstrich
48 0x30 0 Ziffern
49 0x31 1
50 0x32 2
51 0x33 3
52 0x34 4
53 0x35 5
54 0x36 6
55 0x37 7
56 0x38 8
57 0x39 9
58 0x3A : Doppelpunkt
59 0x3B ; Semikolon
60 0x3C < Kleiner
61 0x3D = Gleich
62 0x3E > Größer
63 0x3F ? Fragezeichen
64 0x40 @ At-Zeichen
65 0x41 A Großbuchstaben
66 0x42 B
67 0x43 C
68 0x44 D
69 0x45 E
70 0x46 F
71 0x47 G
72 0x48 H
73 0x49 I
74 0x4A J
75 0x4B K
76 0x4C L
77 0x4D M
78 0x4E N
79 0x4F O
80 0x50 P
81 0x51 Q
82 0x52 R
83 0x53 S
84 0x54 T
85 0x55 U
86 0x56 V
87 0x57 W
88 0x58 X
89 0x59 Y
90 0x5A Z
91 0x5B [ Linke eckige Klammer
92 0x5C \ Backslash
93 0x5D ] Rechte eckige Klammer
94 0x5E ^ Caret (Zirkumflex)
95 0x5F Unterstrich
96 0x60 Gravis (Akzent)
97 0x61 a Kleinbuchstaben
98 0x62 b
99 0x63 c
100 0x64 d
101 0x65 e
102 0x66 f
103 0x67 g
104 0x68 h
105 0x69 i
106 0x6A j
107 0x6B k
108 0x6C l
109 0x6D m
110 0x6E n
111 0x6F o
112 0x70 p
113 0x71 q
114 0x72 r
115 0x73 s
116 0x74 t
117 0x75 u
118 0x76 v
119 0x77 w
120 0x78 x
121 0x79 y
122 0x7A z
123 0x7B { Linke geschweifte Klammer
124 0x7C | Vertikaler Strich
125 0x7D } Rechte geschweifte Klammer
126 0x7E ~ Tilde
127 0x7F Delete

image Die ASCII-Zeichen 0 bis 31 stellen Kontrollcodes dar. Diese Zeichen erhält man, indem man die Steuerungstaste auf der Tastatur drückt und das entsprechende Symbol bzw. Buchstaben eintippt.

image 32 ist der Code für das Leerzeichen.

image Code 127 ist das Leerzeichen, das sich von Code Nummer 8 unterscheidet, der Rücktaste (Backspace). Code 8 ist nicht zerstörend, es bewegt nur den Cursor um einen Platz zurück.

image Viele der Kontrollzeichen handhaben den Text auf dem Bildschirm; keycaps + keycaps etwa steht für die Tabulatortaste.

image Wenn man genau hinschaut, erkennt man drei Wiederholungen in der ASCII-Code-Liste. Vergleichen Sie die Codes zwischen 0 und 26 mit denen von 64 bis 90. Betrachten Sie zusätzlich die Codes zwischen 97 und 122.

image Die Differenz zwischen den Groß- und Kleinbuchstaben ist 32, eine heilige Computerzahl. Die hexadezimale Differenz ist 0x20. Daher kann man mit einfacher Mathematik beziehungsweise mit bitweiser Logik zwischen Groß- und Kleinbuchstaben schalten.

image Die Zeichen für 0 bis 9 gleichen den Werten 0 bis 9, wenn man 48 (0x30) abzieht. In gleicher Weise kann man durch Addition von 48 beziehungsweise 0x30 aus den Zahlen die entsprechenden ASCII-Zeichen erhalten.

image Jedes ASCII-Zeichen kann durch eine Escape-Sequenz dargestellt werden. Nach dem Backslash wird der Wert des Codes eingegeben, wie etwa \33 für das Ausrufezeichen (!). Der hexadezimale Wert kann auch benutzt werden, so zum Beispiel \x68 für das kleine h.

Anhang B
Schlüsselwörter

_Alignas break float signed
_Alignof case for sizeof
_Atomic char goto static
_Bool const if struct
_Complex continue inline switch
_Generic default int typedef
_Imaginary do long union
_Noreturn double register unsigned
_Static_assert else restrict void
_Thread_local enum return volatile
auto extern short while

Die Schlüsselwörter von C (C11-Standard)

asm entry fortran

Veraltete C-Schlüsselwörter

asm false private throw
bool friend protected true
catch inline public try
class mutable reinterpret_cast typeid
const_cast namespace static_cast using
delete new template virtual
dynamic_cast operator this

C++-Schlüsselwörter

image C11 ist der gegenwärtige Standard der Sprache C (zur Zeit der Drucklegung dieses Buchs). Er wurde 2011 eingeführt.

image Sie brauchen sich die C++-Schlüsselwörter nicht zu merken, aber sie sollten sich ihrer bewusst sein. Ich empfehle nachdrücklich, sie nicht als Namen von Funktionen oder Variablen in Ihren Programmen zu verwenden.

image Das von C-Programmierern am häufigsten benutzte C++-Wort ist new. Sie sollten es nicht benutzen; verwenden Sie etwas anderes, etwa new_item oder newSomething.

image Das Schlüsselwort bool in C++ ist genau das gleiche wie das _Bool-Schlüsselwort in C.

Anhang C
Operatoren

Operator Typ Funktion
+ Mathematisch Addition
Mathematisch Subtraktion
* Mathematisch Multiplikation
/ Mathematisch Division
% Mathematisch Modulo (Rest)
++ Mathematisch Erhöhung (Inkrement)
− − Mathematisch Verminderung (Dekrement)
+ Mathematisch Einstelliges (unäres) +
Mathematisch Einstelliges (unäres) −
= Zuweisung Wertzuweisung zu einer Variablen
+= Zuweisung Addition
−= Zuweisung Subtraktion
*= Zuweisung Multiplikation
/= Zuweisung Division
%= Zuweisung Modulo (Rest)
!= Vergleich Nicht gleich
< Vergleich Kleiner als
<= Vergleich Kleiner oder gleich
== Vergleich Gleich
> Vergleich Größer als
>= Vergleich Größer oder gleich
&& Logisch Logisches Und
|| Logisch Logisches Oder
! Logisch Der Ausdruck ist falsch
& Bitweise Bitweises Und
| Bitweise Bitweises Oder
^ Bitweise Exklusives Oder (XOR)
~ Bitweise Bitweises Nicht/NOT
! Unär NOT
* Unär Pointer

Siehe auch Anhang G für die Rangordnung der Operatoren

Anhang D
Typen von Variablen

Typ Wertebereich Umwandlungszeichen für printf ( )
_Bool 0 bis 1 %d
char −128 bis 127 %c
unsigned char 0 bis 255 %u
short int −32 768 bis 32 767 %d
unsigned short int 0 bis 65 535 %u
int −2 147 483 648 bis
2 147 483 647
%d
unsigned int 0 bis 4 294 967 295 %u
long int −2 147 483 648 bis
2 147 483 647
%ld
unsigned long int 0 bis 4 294 967 295 %lu
float 1.17 × 10−38 bis 3.40 × 1038 %f
double 2.22 × 10−308 bis 1.79 × 10308 %f

Anhang E
Escape-Sequenzen

Escape-Sequenz Erzeugte Eigenschaft
\a Akustisches Signal (»Piep«)
\b Rückschritt
\f Seitenvorschub
\n Zeilenvorschub
\r Wagenrücklauf (Return)
\t Horizontaler Tabulator
\v Vertikaler Tabulator
\\ Umgekehrter Schrägstrich
\? Fragezeichen
\' Einfaches Anführungszeichen
\'' Doppeltes Anführungszeichen
\xnn Hexadezimaler Zeichencode nn
\onn Oktaler Zeichencode nn
\nn Oktaler Zeichencode nn

Anhang F
Umwandlungszeichen

Zeichen Was dargestellt wird
%% Prozentzeichen (%)
%c Einzelzeichen (char)
%d Ganze Zahl (short, int)
%e Gleitkommazahl in wissenschaftlicher Schreibweise mit kleinem e (float, double)
%E Gleitkommazahl in wissenschaftlicher Schreibweise mit großem E (float, double)
%f Gleitkommazahl in Dezimalschreiweise (float, double)
%g Ersatz für %f oder %e (je nachdem, was kürzer ist) (float, double)
%G Ersatz für %f oder %E (je nachdem, was kürzer ist) (float, double)
%i Ganze Zahl (short, int)
%ld Lange ganze Zahl (long, int)
%o Oktalzahl ohne Zeichen und ohne führende Null
%p Hexadezimaler Speicherort (*Pointer)
%s String (*char)
%u Ganze Zahl ohne Vorzeichen (unsigned short, unsigned int, unsigned long)
%x Hexadezimale Zahl ohne Vorzeichen, Kleinbuchstaben (short, int, long)
%X Hexadezimale Zahl ohne Vorzeichen, Großbuchstaben (short, int, long)

Formatieren mit Umwandlungszeichen

Es gibt zahllose Möglichkeiten für die Verwendung von Umwandlungszeichen in C. Auf der Manualseite für printf () sind viele von Ihnen aufgeführt. Einige erfordern ein paar Experimente, bis man sie korrekt verwendet. Allgemein sieht das Format für ein typisches Umwandlungszeichen wie folgt aus:

%-pw.dn

Unbedingt notwendig sind das erste und das letzte Zeichen: Jedes Umwandlungszeichen beginnt mit einem %-Zeichen, n ist das eigentliche Umwandlungszeichen.

   Das Minuszeichen sorgt zusammen mit der w-Option für eine rechtsbündige Ausrichtung der Ausgabe.
p Das Auffüllungszeichen (padding character); es ist entweder Null oder ein Leerzeichen, wenn die w-Option benutzt wird. Normalerweise ist es ein Leerzeichen; in diesem Fall muss p nicht spezifiziert werden. Wenn p allerdings null ist, wird der Wert auf der linken Seite mit Nullen aufgefüllt, um die Breite zu erreichen, die durch die w-Option festgelegt wird.
w Die Breitenoption; sie legt die Mindestzahl von Positionen fest, in der die Information angezeigt wird. Die Ausgabe ist rechtsbündig, wenn nicht das Vorzeichen – verwendet wird. Auf der linken Seite werden Leerzeichen aufgefüllt, es sei denn, der p-Wert ist 0 (Null).
.d Der Punkt wird von einem d-Wert gefolgt, der festlegt, wie viele Stellen nach dem Dezimalpunkt bei einer Gleitkommazahl angegeben werden. Wenn d nicht angegeben wird, wird nur der ganzzahlige Anteil des Werts dargestellt.
n Das Umwandlungszeichen, wie es in der Tabelle angegeben ist. Es kann auch ein Prozentzeichen sein; in diesem Fall erscheint ein %-Zeichen in der Ausgabe.

Anhang G
Rangordnung

Operator Klasse Beschreibung
! Unär Logisches Nicht, die Assoziativität geht von rechts nach links
++−− Unär Erhöhung, Erniedrigung, von rechts nach links zu lesen
*/% Mathematisch Multiplikation, Division, Rest
+ − Mathematisch Addition, Subtraktion
Binär Logische Verschiebung links bzw. rechts
< > <= >= Vergleich Kleiner als, größer als, kleiner gleich, größer gleich
== != Vergleich Ist gleich, ist nicht gleich
& Binär Und
^ Binär Exklusives Oder (XOR)
| Binär Oder
&& Logisch Und
|| Logisch Oder
?: Vergleich Sonderbare Form der if-Anweisung; die Rangordnung ist von rechts nach links
= Zuweisung Zuweisungsoperator für Variable, schließt += und *= sowie alle Zuweisungsoperatoren ein
, (keine) Trennt Punkte in einer for-Anweisung, die Rangordnung ist von links nach rechts

Tabelle G.1: Rangordnung der Standardoperatoren

image Die Rangordnung kann durch die Verwendung von Klammern umgangen werden. C führt diesen Teil einer Gleichung vor allen anderen aus.

image Variablen, die auf der rechten Seite mit ++ oder −− versehen sind, kommen vor Variablen, bei denen diese Operatoren auf der linken Seite stehen. Daher ist var++ vorrangig vor ++var.

image Die Assoziativität von Zuweisungsoperatoren geht von rechts nach links. Bei += beispielsweise wird zunächst die Operation auf der rechten Seite ausgeführt.

Ausdruck Adresse p Wert *p
p Ja Nein
*p Nein Ja
*p++ Erhöhung nach dem Lesen Unverändert
*(p++) Erhöhung nach dem Lesen Unverändert
(*p)++ Unverändert Erhöhung nach dem Lesen
*++p Erhöhung vor dem Lesen Unverändert
*(++p) Erhöhung vor dem Lesen Unverändert
++*p Unverändert Erhöhung vor dem Lesen
++(*p) Unverändert Erhöhung vor dem Lesen

Tabelle G.2: Pointer und ihre Rangordnung

Kapitel 1

Ein schneller Start für die Ungeduldigen

IN DIESEM KAPITEL

Die Entwicklungsumgebung (IDE) Code::Blocks herunterladen

Ihr erstes Projekt vorbereiten

Den Code eingeben

Das Projekt und laufen lassen

Sie sind wahrscheinlich begierig darauf, mit dem Programmieren in C zu beginnen. Ich will nicht Ihre Zeit vergeuden.

Was Sie zum Programmieren benötigen

Um Ihren Computer, Ihr Tablet, Ihr Handy, Ihre Spielkonsole oder was auch immer vollständig zu beherrschen, benötigen Sie einige Softwaretools. Die gute Neuigkeit ist, dass zum jetzigen Zeitpunkt, im 21. Jahrhundert, all diese Tools über das Internet frei und einfach verfügbar sind. Sie müssen nur wissen, was erforderlich ist und wo Sie es bekommen.

Tools zum Programmieren besorgen

Die beiden wichtigsten Dinge, die Sie für den Start Ihres Programmierabenteuers benötigen sind:

image Ein Computer

image Ein Internetzugang

Der Computer ist Ihr wichtigstes Instrument zum Schreiben und Erstellen von Programmen. Sogar wenn Sie nur ein Spiel für die Xbox schreiben, benötigen Sie zum Programmieren einen Computer. Der Computer kann ein PC oder ein Macintosh sein. Er kann mit Windows oder Linux arbeiten.

Der Internetzugang ist notwendig, um die restlichen Programmiertools zu bekommen. Sie benötigen einen Texteditor, um den Code zu schreiben, und einen Compiler, um den Code in ein Programm zu verwandeln. Der Compiler kommt gewöhnlich zusammen mit anderen Tools, die Sie brauchen, wie einem Linker und einem Debugger. All diese Tools finden Sie kostenfrei im Internet.

Flippen Sie nicht aus! Die Begriffe Compiler, Linker und Debugger werden alle in Kapitel 2 erläutert.

Eine Entwicklungsumgebung (IDE) besorgen

Es ist völlig normal, dass Sie Ihre Reise in die Programmierwelt beginnen, indem Sie einen Texteditor, einen Compiler und andere Tools zusammenstellen. Die Verwendung von getrennten Programmen in der Kommandozeile in einem Bildschirmfenster ist die Art, in der ich in grauer Vorzeit das Programmieren gelernt habe. Das ist ein Weg, den man gehen kann, aber er ist etwas altmodisch.

Der geradlinige, professionelle Weg zum Erstellen von Codes besteht heutzutage in der Verwendung einer Integrierten Entwicklungsumgebung (engl. Integrated Development Environment), die von den echten Programmierern IDE genannt wird. Sie verbindet alle Tools, die Sie zum Programmieren benötigen, zu einer kompakten, furchterregenden und einschüchternden Einheit.

Sie verwenden die IDE zum Schreiben von Codes, zum Erstellen von Programmen, zum Auffinden von Fehlern und zur Durchführung aller Arten von Zauberei, obwohl es nostalgisch ist, einen separaten Texteditor oder Compiler zu verwenden. Alle Profis nutzen eine IDE. Das empfehle ich für den Gebrauch in diesem Buch ebenfalls.

Die Beschaffung einer IDE löst unzählige Probleme wie das Einrichten eines Compilers, die Konfigurierung des Texteditors und die Aufgabe, diese verschiedenen Elemente dazu zu bringen, zusammen zu arbeiten. Eine IDE zu haben, ist der beste Weg, um mit dem Programmieren zu beginnen – worauf Sie wahrscheinlich ziemlich scharf sind.

Die IDE Code::Blocks betrachten

Sie werden im Internet mehr als genug IDEs finden und sie sind alle ziemlich gut. Doch um konsistent zu sein, arbeitet dieses Buch mit der IDE Code::Blocks, die unter Windows, Mac OS X und Linux läuft. Sie hat alles, was Sie benötigen.

Wenn Sie bereits eine IDE haben – großartig! Ich bin sicher, dass sie das gleiche wie Code::Blocks kann, obwohl in diesem Buch die Abbildungen und Beispiele, vor allem in den ersten Kapiteln, typisch für Code::Blocks sind.

Code::Blocks installieren

Sie erhalten Code::Blocks im Internet auf folgender Webseite: www.codeblocks.org

Diese Webseite wird sich zweifellos im Verlauf der Zeit ändern, so dass sich die folgenden Schritte zur Installation der IDE etwas ändern können:

1. Verwenden Sie den Webbrowser Ihres Computers, um die Webseite Code::Blocks zu besuchen.

2. Gehen Sie in den Bereich zum Herunterladen.

Laden Sie eine binäre oder lauffähige Version von Code::Blocks herunter. Sie muss für das Betriebssystem Ihres Computers geeignet sein. Suchen Sie außerdem eine Version mit einem C–Compiler, wie etwa dem gebräuchlichen Compiler MinGW.

3. Klicken Sie auf den Link zum Anzeigen der binären oder lauffähigen Installation von Code::Blocks.

Als dieses Buch in den Druck ging, hieß der Link Downl oad t he Binar y Rel ease.

4. Wählen Sie das Betriebssystem Ihres Computers oder scrollen Sie zu dem Teil des Bildschirms, der Optionen für dieses Betriebssystem enthält.

Sie finden Abschnitte (oder Seiten) für Windows, Linux und Mac OS X.

5. Klicken Sie auf den Link, der den für Ihr Betriebssystem geeigneten Compiler und die entsprechende IDE herunterlädt.

Die Version des IDEs und des Compilers für Windows ist folgendermaßen benannt:

codeblocks-xx.yymingw-setup.exe

xx und yy sind dabei Platzhalter für die Nummern der jeweiligen Version des Code::Blocks.

In Linux können Sie je nach Ihrer Linux–Distribution, kurz Distro, die 32– oder die 64–Bit–Version und das von Ihnen gewünschte Dateiformat auswählen. Ich empfehle eine stabile Version.

Die Nutzer von Mac OS X können wählen, ob sie eine .dmg–Datei (Disk–Image–Datei) oder eine herkömmliche Zip–Datei herunterladen wollen.

6. Extrahieren Sie das Code::Blocks–Installationsprogramm aus dem Archiv.

Ungeachtet des Für Dummies–Titels dieses Buches gehe ich davon aus, dass Sie mit .zip, .gz, .dmg und anderen Dateiformaten in dem von Ihnen genutzten Betriebssystem erfolgreich arbeiten können.

7. Starten Sie das Installationsprogramm.

Achten Sie auf die Anweisungen auf dem Bildschirm. Führen Sie eine Standardinstallation durch; Sie müssen zu diesem Zeitpunkt nichts individuell einrichten.

Wenn Sie unter Windows arbeiten, stellen Sie sicher, dass Sie den MinGW–Compiler installieren. Wenn diese Option nicht im Fenster für die Wahl der Komponenten angezeigt wird, haben Sie die falsche Version von Code::Blocks heruntergeladen. Dann gehen Sie zurück zu Schritt 5.

8. Beenden Sie die Installation, indem Sie Code::Blocks laufen lassen.

Auf meinem Bildschirm erschien eine Anzeige, die fragte, ob ich Code::Blocks laufen lassen möchte. Ich klickte auf »Yes«. Wenn Sie diese Abfrage nicht sehen, verwenden Sie das Betriebssystem des Computers, um Code::Blocks so zu starten wie jedes andere Programm auch.

9. Schließen Sie das Fenster zur Installation.

Auch wenn Sie Code::Blocks über den Bildschirm laufen sehen, müssen Sie trotzdem die Installation beenden, indem Sie das Installationsfenster schließen.

Der folgende Abschnitt bietet einen Überblick über die Benutzeroberfläche des Code::Blocks–Programms.

Eine Reise durch den Arbeitsbereich von Code::Blocks

Wenn Code::Blocks noch nicht gestartet ist, schreiten Sie voran, indem Sie es starten. Man startet es wie jedes andere Programm: Gehen Sie zu seinem Icon im Startmenü oder zu dem entsprechenden Icon auf der Bildschirmoberfläche. Dies ist der einfachste Weg zum Starten von Code::Blocks unter Windows 8.

Abbildung 1.1 zeigt den Arbeitsbereich, wie der offizielle Name des gewaltigen Mosaiks aus Fenstern lautet, die Sie auf dem Bildschirm sehen.

image

Abbildung 1.1 Der Arbeitsbereich von Code::Blocks

Die Einzelheiten in Abbildung 1.1 sind relativ klein, aber Sie sollten die wesentlichen Bereiche kennen, die in der Abbildung angegeben sind:

Symbolleisten (engl. Toolbars): Diese vertrackten Leisten, die mit verschiedenen Kommandozeichen verziert sind, sind am oberen Ende des Code::Blocks–Fensters angeordnet. Es gibt acht Leisten, die Sie umordnen, anzeigen oder verstecken können. Legen Sie sich nicht mit ihnen an, bevor Sie sich mit der Benutzeroberfläche angefreundet haben.

Verwaltung (engl. Management): Das Fenster im linken Bereich des Arbeitsbereichs zeigt vier Reiter (engl. Tabs), obwohl Sie vielleicht nicht alle vier gleichzeitig sehen. Es bietet einem praktische Beaufsichtigung Ihrer Programmierbemühungen.

Statuszeile (engl. Status bar): Am unteren Ende des Bildschirms sehen Sie Informationen über das Projekt, den Editor und über andere Aktivitäten, die in Code::Blocks ablaufen.

Editor: Das große Fenster in dem mittleren und rechten Bereich des Bildschirms ist der Bereich, in dem Sie den Code eingeben.

Protokolldateien (engl. Logs): Im unteren Teil des Bildschirms befindet sich ein Fenster mit sehr vielen Reitern. Jeder Reiter zeigt Informationen über Ihr Programmierprojekt an. Der Reiter, den Sie am häufigsten verwenden, heißt Buil d Log.

Das Menü View kontrolliert die Sichtbarkeit eines jeden in dem Fenster angezeigten Posten. Wählen Sie das dazugehörige Kommando sowie Manager aus dem Menü View, um diesen Posten zu zeigen oder zu verstecken. Kontrollieren Sie die Symbolleisten, indem Sie das Untermenü View|Tool bar s verwenden.

1 Das Wichtigste, was Sie bei der Benutzeroberfläche von Code::Blocks beachten müssen: Lassen Sie sich nicht von ihr verwirren. Eine IDE wie Code::Blocks kann höchst einschüchternd sein, auch wenn Sie sich als einen erfahrenen Programmierer betrachten. Keine Angst: Sie werden sich schnell zu Hause fühlen.

image Vergrößern Sie das Code::Blocks–Fenster, so dass es den gesamten Bildschirm füllt. Sie benötigen all diesen Platz.

image Jeder der verschiedenen Bereiche auf dem Bildschirm – Verwaltung, Editor, Protokolldateien – kann in seiner Größe verändert werden: Setzen Sie den Mauszeiger zwischen zwei Bereiche. Wenn sich der Mauszeiger in ein doppelpfeilartiges Etwas verwandelt, können Sie die Maus so ziehen, dass sich die Größe eines Bereichs ändert.

image Der Editor und die Protokolldateien weisen gekennzeichnete Benutzeroberflächen auf. Jedes Fenster zeigt viele »Blätter« mit Informationen. Wechseln Sie zwischen den Blättern, indem Sie einen anderen Reiter wählen.

Ihr erstes Projekt

Bei der herkömmlichen Computerprogrammierung verwendete man, voneinander getrennt, einen Texteditor, einen Compiler und einen Linker. Die Eingabeaufforderungszeile (engl. command prompt) wurde benutzt, um die Kommandos zum Editieren, Kompilieren und Linken einzugeben. Es war ein linearer Prozess, und war für kleine Projekte sehr gut geeignet. Mit dem Aufkommen neuer Betriebssysteme und der Programmierung von mobilen Geräten und Spielkonsolen wird diese lineare Methode jedoch höchst ineffizient.

Die moderne IDE besitzt immer noch die Elemente eines Editors, Compilers, Linkers, Debugger und anderer Programmiertools. Sie verfügt über Eigenschaften, die zum Erzeugen von grafischen Programmen und komplexen Projekten erforderlich sind. Daher ist die IDE darauf ausgerichtet, nicht nur mit einzelnen Programmen, sondern mit Projekten zu arbeiten.

In diesem Abschnitt wird der Prozess des Erstellens eines Projekts mit der IDE Code::Blocks erläutert.

Ein neues Projekt erstellen

Die in diesem Buch vorgestellten Beispiele sind ausschließlich Tastaturanwendungen; das bedeutet, dass sie im Textmodus in einem Computerfenster laufen. Meiner Meinung nach ist das der beste Weg zum Lehren von grundlegenden Programmierkonzepten, ohne Sie mit einem großen, komplexen, grafischen Scheusal von Programm zu erschlagen. Auch wenn eine IDE viel leistungsfähiger ist, verwenden sie Sie in diesem Buch, um einfache, tastaturbasierte Programme zu erzeugen. Sie arbeitet folgendermaßen:

1. Starten Sie Code::Blocks.

Sie sehen den Start–Here–Bildschirm, der das Logo von Code::Blocks und einige Links anzeigt. Wenn Sie den Start–Here–Bildschirm nicht sehen, dann wählen Sie File|Close Wor kspace.

2. Klicken Sie auf den Link Create a New Project.

Die in Abbildung 1.2 gezeigte Dialogbox New f r om Templ at e erscheint.

3. Wählen Sie Console Application aus und klicken Sie auf das Feld Go.

Der Tastaturanwendungs-Wizard erscheint.

1 Sie können eine Markierung bei Skip This Page Next Time machen, um den ersten Schirm des Wizards zu überspringen.

4. Klicken Sie auf das Feld Next.

5. Wählen Sie C als die Sprache aus, die Sie verwenden wollen und klicken Sie dann auf das Feld Next.

C unterscheidet sich stark von C++ – Sie können in der einen Sprache Sachen machen, die in der anderen nicht erlaubt sind.

6. Geben Sie ex0101 als Projekttitel ein.

Alle Codes in diesem Buch sind nach diesem Schema benannt: Die Buchstaben ex (für exercise = Übung), gefolgt von einer zweistelligen Kapitelnummer und einer zweistelligen Projektnummer.

Wenn Sie den Projekttitel festlegen, wird der Dateiname des Projekts automatisch ausgefüllt.

7. Klicken Sie auf das Browse–Feld rechts in der Textbox mit dem Namen Folder to Create Project In.

Ich empfehle, dass Sie einen gesonderten Ordner für alle Projekte in diesem Buch anlegen.

8. Verwenden Sie das Feld Make New Folder in der Dialogbox Browse for Folder, um einen neuen Projektordner zu erzeugen.

Wenn Sie bereits einen Ordner für Programmierprojekte haben, erzeugen Sie einen neuen Unterordner mit dem Namen BegC4D für die Projekte in diesem Buch. Der Name des Ordners beruht auf dem Titel der amerikanischen Ausgabe dieses Buches Beginning Programming with C For Dummies.

Wenn Sie keinen Ordner für Programmierprojekte im Hauptordner Ihres Benutzerkontos haben, erzeugen Sie einen Unterordner namens prog und dann einen weiteren Ordner namens c. Zum Schluss erzeugen Sie einen Unterordner namens BegC4D und wählen ihn zum Speichern des Projekts.

In meinem Computer, der mit Windows 7 arbeitet, sind die Projekte aus diesem Buch in folgendem Ordner gespeichert:

C:\Users\Dan\prog\c\BegC4D\

9. Klicken Sie auf das Feld OK, um den Ordner auszuwählen, und schließen Sie die Dialogbox.

10. Klicken Sie auf das Feld Next.

Der nächste Bildschirm (der letzte) ermöglicht Ihnen, einen Compiler auszuwählen und zu entscheiden, ob Sie eine Debug– oder eine Veröffentlichungsversion oder beides anlegen wollen.

Die Auswahl des Compilers ist in Ordnung; der Compiler GNU GCC (oder was auch immer in dem Fenster angezeigt wird) ist genau der, den Sie haben wollen.

11. Entfernen Sie das Häkchen an der Zeile Create Debug Configuration.

Sie benötigen diese Konfiguration nur, wenn Sie ein Programmierdilemma beheben müssen (engl. debug), das Ihnen Kopfzerbrechen bereitet. In Kapitel 25 wird diese Situation behandelt.

12. Klicken Sie auf das Feld Finish.

image

Abbildung 1.2 Hier starten neue Projekte.

Code::Blocks erzeugt ein Gerüst Ihres Projekts, das Sie möglicherweise dennoch nicht im Fenster des Programms sehen. Bei einem einfachen Kommandozeilenprojekt ist das Gerüst eine Quelltextdatei – eine Klartextdatei, die den C–Programmiercode enthält, um Ihnen zu helfen, Ihr Projekt zu starten.

Lesen Sie im folgenden Abschnitt weiter.

1 Eine Tastaturanwendung ist eine der einfachsten Programme, die Sie erstellen können. Wenn Sie ein Windowsprogramm erstellen, dann erzeugt Code::Blocks andere Elemente für Sie und zeigt Tools zum Entwerfen des Fensters, zum Erstellen eines Icons und zum Arbeiten mit anderem erforderlichen Krimskrams an. Die IDE macht es leicht, mit all diesen Dingen zu arbeiten.

Den Quelltext überprüfen

Wenn Code::Blocks ein neues Projekt hervorzaubert, erzeugt es eine Handvoll grundlegender Elemente, damit Sie anfangen können. Bei einer Tastaturanwendung beinhaltet dies nur ein Element: Die Quelltextdatei main.c.

Eine Quelltextdatei ist eine Klartextdatei, die den Programmiercode enthält. In Kapitel 2 werden die Einzelheiten erläutert, doch im Moment reicht es aus zu wissen, dass Code::Blocks diese Datei jedes Mal automatisch erzeugt, wenn Sie ein neues Projekt starten. Es gibt Ihnen sogar einen Mustercode vor, mit dem Sie starten können, obwohl Sie meistens das Gerüst löschen und von vorn anfangen, indem Sie Ihren eigenen Code schreiben.

Projekte in der IDE werden in dem Kasten Management auf der linken Seite des Bildschirms (siehe Abbildung 1.1) aufgelistet. Wenn Sie diesen Kasten nicht sehen, drücken Sie keycaps + keycaps auf der Tastatur oder wählen Sie View|Manager aus dem Menü aus.

Abbildung 1.3 zeigt den Managementkasten mit dem ausgewählten Projektreiter. Das derzeitige Projekt ist geöffnet, aber Sie können auch andere Projekte sehen.

image

Abbildung 1.3 Projekte in der IDE

Bei einem neuen Tastaturanwendungsprojekt wird die Quelltextdatei main.c genannt. Sie wird in dem Quellordner des Projekts gespeichert. Wenn Sie die Quelltextdatei nicht sehen (siehe Abbildung 1.3), dann öffnen Sie den Quellordner, um ihn anzuzeigen.

Machen Sie einen Doppelklick auf das Element main.c im Quellordner, um die Datei im Editorfenster zu öffnen. Das vorgeschriebene Codegerüst wird in Listing 1.1 angezeigt. Es handelt sich um einen richtigen Code für ein reales Programm in C, welches Sie erstellen können, wie im nächsten Abschnitt erläutert wird.

Listing 1.1: Das Code::Blocks–Gerüst

#include <stdio.h>
#include <stdilib.h>

int main()
{
    printf("Hello world!\n");
    return 0;
}

In Kapitel 2 werden die Einzelheiten zu Listing 1.1 erläutert. Im Moment können Sie den farbenprächtigen Text und die schöne Formatierung bewundern.

image Das Editorfenster zeigt Zeilennummern an. Wenn Sie sie nicht sehen, wählen Sie Edit|Edit or T weaks|Show Line Number s. In diesem Buch wird davon ausgegangen, dass Sie die Zeilennummern sehen können, um Bezug darauf nehmen zu können.

image Die Zeilennummern sind kein Teil des C–Codes. Sie werden zum Bearbeiten benutzt; aber auch wenn Fehler auftreten, beziehen sich die Angaben auf die Zeilennummern in dem Code.

image Sie können den Einzug des Tabulators festlegen, indem Sie Edit |Edit or T weaks|Tab Size auswählen und dann die Größe wählen. Ich bevorzuge vier Leerzeichen pro Einzug.

image Der Farbton des Textes wird mithilfe von Edit |Highl ight Mode|C/C++ festgelegt. Um die Hervorhebungen zu entfernen, wählen Sie das Element Pl ain Text aus dem Untermenü Highl ight Mode aus. (Es ist dort das erste Element.)

Das Projekt erstellen und laufen lassen

Um ein Programm in Code::Blocks zu erzeugen, müssen Sie das Projekt erstellen. Dieser einzelne Schritt bedingt verschiedene Dinge; ich vermeide es allerdings, die Einzelheiten vor Kapitel 2 zu diskutieren. Wenn Sie bereits Ihr erstes Projekt ex0101 begonnen haben, es geöffnet ist und in Code::Blocks angezeigt wird, sind Sie so weit, dass Sie es erstellen können. Beachten Sie folgende Schritte:

1. Stellen Sie sicher, dass das Projekt, das Sie erstellen wollen, im Managementfenster aktiviert ist.

Aktivierte Projekte erscheinen in Fettdruck. Wenn mehr als ein Projekt im Projektfenster angezeigt wird, aktivieren Sie dasjenige, mit dem Sie arbeiten wollen, indem Sie mit der rechten Maustaste den Projektnamen anklicken (über den Code::Blocks–Icon) und das Kommando Act ivat e Pr oject wählen.

2. Wählen Sie Build|Build aus dem Menü.

Der Reiter Buil d Log in der Protokolldatei zeigt die Ergebnisse des Erstellen eines Projektes an. Sie sehen dort einige Zeilen Text; die Einzelheiten dazu werden in Kapitel 2 erläutert.

Da Sie sich nicht in das Quelltextgerüst eingemischt haben, wird das Projekt ohne Fehler übersetzt; Sie sehen den Text im Überblick, der null Fehler und null Warnungen anzeigt. Gut. Wenn Fehler auftreten, was häufig genug passiert, machen Sie sich daran, sie zu beheben. Die Fehlermeldungen helfen in dieser Hinsicht; dieses Thema wird in Kapitel 3 erläutert.

Das Erstellen eines Projekts ist aber nur die halbe Arbeit. Die andere Hälfte besteht im Laufenlassen des Projekts, also das Ausführen des fertiggestellten Programms innerhalb der IDE.

Um das aktuelle Projekt laufen zu lassen. wählen Sie Build|Run aus dem Menü. Sie sehen, dass das Bildschirmfenster erscheint und die Ausgaben des Programms sowie etwas überflüssiger Text aufgelistet sind, wie in Abbildung 1.4 gezeigt.

image

Abbildung 1.4 Laufenlassen eines Programms

Drücken Sie keycaps, um das Eingabeaufforderungsfenster zu schließen.

1 Und nun der Clue: Sie können ein Projekt erstellen und laufen lassen mithilfe eines einzigen Befehls: Wählen Sie Buil d|Buil d and Run.

image Die Tastenkombinationen für Buil d, Run und Buil d and Run sind keycaps + keycaps, keycaps + keycaps und keycaps. Es ist aber nicht nötig, sich diese Abkürzungen zu merken – sie sind im Menü aufgelistet.

image Befehlsfelder zum Erstellen und Ausführen eines Projekts befinden sich in der Symbolleiste des Compilers. Sie finden ein gelbes Getriebe–Icon für Buil d, einen grünen Pfeil für Run und eine Kombination aus beiden für den Befehl Buil d and Run.

image Die Ausgabe des Programms erscheint im oberen Teil des Eingabeaufforderungsfensters (siehe Abbildung 1.4). Die letzten beiden Zeilen werden von der IDE erzeugt, wenn das Programm läuft. Der Text enthält einen Wert, der vom Programm an das Betriebssystem zurückgegeben wird, eine null und die Angabe, wie lange das Programm läuft (9 Milli-sekunden). Die Anzeige Press any key to continue besagt, dass Sie mit keycaps das Fenster schließen können.

Speichern und schließen

Wenn Sie ein Projekt erstellt haben oder eine kleine Änderung vorgenommen haben, sollten Sie speichern. In einer IDE müssen Sie allerdings verschiedene Dinge speichern, etwa die Quelltextdatei, den Arbeitsbereich und das Projekt. Befehle zum Speichern dieser verschiedenen Punkte finden Sie in dem Menü Fil e.

Ein praktischer Weg, um alles auf einmal zu speichern, ist die Verwendung des Befehls Save Ever yt hing. Diesen Befehl finden Sie in dem Menü Fil e, die praktische Abkürzung auf der Tastatur ist keycaps + keycaps + keycaps (oder keycaps + keycaps + keycaps bei einem Macintosh).

Wenn Sie das Projekt bisher noch nicht gespeichert haben, machen Sie es jetzt.

Sie können das aktuelle Projekt auch schließen, wenn Sie Fil e|Cl ose Pr oject wählen.

image Verlassen Sie Code::Blocks, wenn Sie eine Pause einlegen möchten.

image Keine Sorge! Code::Blocks ermahnt Sie, wenn Dateien oder Projekte noch ungespeichert sind. Speichern, dann schließen.

image Wenn der Befehl Save Ever yt hing nicht verfügbar ist, gehen Sie davon aus, dass alles in Ordnung und bereits gespeichert ist.

image Der Standardbefehl zum Speichern in Code::Blocks – entweder Fil e|Save oder keycaps + keycaps – wird verwendet, um Dateien wie Ihre Quelltextdatei in der Sprache C zu speichern. Ich empfehle Ihnen dringend, Ihre Quelltextdateien zu speichern, wenn Sie sie bearbeitet haben.

Kapitel 2

Die Sache mit dem Programmieren

IN DIESEM KAPITEL

Die Geschichte des Programmierens verstehen

Quelltext erzeugen und in Objektcode verwandeln

Mithilfe des Linkers ein Programm erzeugen

Das endgültige Programm testen

Es wird Programmieren genannt, auch wenn es die echten Programmierer unter dem Wort Codieren kennen – der Prozess, bei dem ein Mensch Informationen schreibt, die manchmal einem kryptischen Englisch ähneln, die dann irgendwie in Anweisungen für ein elektronisches Dingsbums übersetzt werden. Am Ende verleiht diese stille und einsame Kunst Personen die Macht, die Elektronik zu kontrollieren. Das ist eine großartige Sache. Das ist das Programmieren.

Die Geschichte des Programmierens

Es gibt nur wenige Bücher über das Programmieren, in denen die aufregende, dramatische Geschichte des Programmierens nicht beschrieben wird. Für mich als Programmierer ist es schwierig, nicht darüber zu schreiben; meiner Begeisterung lasse ich auch auf Cocktailpartys immer freien Lauf. Betrachten Sie diesen Abschnitt also als freiwilligen Lesestoff, obwohl ein Überblick darüber, was das Programmieren früher war und was es heute ist, Ihnen helfen kann, diese Kunstform besser zu verstehen.

Kurz gesagt ist Programmieren der Prozess, einem Ding zu sagen, was es machen soll. Dieses Dingsbums ist die Hardware; das Programm ist die Software.

Ein Überblick über die frühe Geschichte des Programmierens

Das erste zu programmierende Dingsbums war die analytische Maschine (engl. Analytical Engine) von Charles Babbage im Jahr 1822. Die Programmierung erfolgte durch die physische Änderung der Werte, die durch eine Säule aus Zahnrädern dargestellt wurden. Die Maschine sollte dann das Ergebnis irgendeiner langweiligen, komplexen, mathematischen Gleichung berechnen.

In den Jahren nach 1940 wurden frühe elektronische Computer auf ähnliche Weise wie die analytische Maschine von Babbage programmiert. Ein wesentlicher Unterschied war, dass statt dem Umordnen von Zahnrädern eher Anweisungen festverdrahtet in den elektronischen Schaltkreis eingegeben wurden. »Programmierung« bedeutete größtenteils »Neuverdrahtung«.

Mit der Zeit wurde die Arbeit des Neuverdrahtens durch Reihen von Schaltern ersetzt. Die Anweisungen für den Computer wurden durch das Umlegen der Schalter in einer bestimmten Weise eingegeben.

Professor John von Neumann bereitete in den Jahren nach 1950 der modernen Programmierung von Computern den Weg. Er führte das Fällen von Entscheidungen in den Prozess ein, sodass Computer eine wenn–dann–Wahl treffen können. Professor von Neumann entwickelte auch das Konzept der Wiederholungsschleife und des Unterprogramms.

Es war Admiral Grace Hopper, die den ersten Compiler entwickelte, also ein Programm, das andere Programme erzeugt. Ihr Compiler nahm Wörter und Redewendungen in Englisch auf und wandelte sie in einen Code um. Somit war die Programmiersprache geboren.

Die erste bedeutende Programmiersprache in den 50er Jahren des letzten Jahrhunderts war FORTRAN. Der Name stammt von Formula Translator. Andere Programmiersprachen aus dieser Zeit sind unter anderen COBOL, Algol, Pascal und BASIC.

1 Unabhängig davon, ob man Schaltkreise neuverdrahtet, Schalter kippt oder in einer Programmiersprache schreibt, das Ergebnis ist das gleiche: Man sagt der Hardware, dass sie etwas machen soll.

Die Einführung der Programmiersprache C

Die Programmiersprache C wurde 1972 in den AT&T Bell Labs von Dennis Ritchie entwickelt. Sie kombiniert Elemente der Sprachen B und BCPL, aber auch etwas Pascal steckt darin. Mr. Ritchie verwendete zusammen mit Brian Kernighan C, um das Betriebssystem Unix zu entwickeln. Ein C–Compiler war seither ein Teil dieses Betriebssystems.

In den frühen 80er Jahren des letzten Jahrhunderts verwendete Bjarne Stoustroup C als Grundlage der objektorientierten Programmiersprache C++. Der ++ (plus–plus)–Teil des Namens ist gewissermaßen ein Insiderwitz, den Sie besser verstehen werden, wenn Sie Kapitel 11 gelesen haben.Das Ziel von Mr. Stoustroup war, dass C++ der Nachfolger von C wird. In mancher Hinsicht ist das der Fall, auch wenn C weiterhin beliebt ist.

Die Programmiersprache D wurde im Jahr 2000 eingeführt. Sie ist nicht so bekannt wie C++ und hat nur optisch Ähnlichkeit mit C. Trotzdem deutet der Name D darauf hin, dass es die nächste Sprache nach C ist. Oder in diesem Fall nach C++.

image Die Programmiersprache B, auf der C basiert, wurde nach dem B in dem Wort Bell Labs benannt.

image BCPL steht für Basic Combined Programming Language.

image Die Programmiersprache C++ hat ziemlich viel Ähnlichkeit mit C, aber sie ist nicht bloß eine Erweiterung oder ein Zusatz. Es ist einfacher, C++ zu lernen, wenn man C kennt, aber es ist nicht einfach, zwischen beiden Sprachen hin und her zu wechseln.

image Unglücklicherweise habe ich keine Idee, wie man »Bjarne Stoustroup« ausspricht.

Der Prozess des Programmierens

Unabhängig davon, was Sie programmieren oder welche Sprache Sie verwenden: Bestimmte Schritte in dem Prozess sind stets die gleichen. Dieser Abschnitt bietet Ihnen einen Überblick darüber.

Das Programmieren verstehen

Der Zweck des Programmierens ist, eine Sprache zu wählen und verschiedene Instrumente zu nutzen, um ein Programm zu erstellen. Die Sprache ist C, die Instrumente sind Editor, Compiler und Linker – oder eine IDE, die alle drei verknüpft. Das Endergebnis ist ein Programm, das die Hardware so steuert, dass sie etwas macht. Bei dieser Hardware kann es sich um einen Computer, ein Tablet, ein Telefon, einen Mikrocontroller oder was auch immer handeln.

Beim Prozess des Programmierens geht man Schritt für Schritt vor:

1. Man schreibt den Quellcode.

2. Man übersetzt (kompiliert) den Quellcode in Objektcode.

3. Man verbindet den Objektcode mit Bibliotheken, um ein Programm zu erstellen.

4. Man lässt das Programm laufen und testet es.

Nehmen Sie sich einen Moment Zeit, um diesen Prozess zu verinnerlichen: schreiben, übersetzen, verbinden, laufen lassen. Der Mensch schreibt einen Quellcode. Der Quellcode wird in Objektcode übersetzt. Der Objektcode wird mit einer C–Bibliothek verknüpft, um ein Programm zu erzeugen. Dann, endlich, läuft das Programm.

In der Realität läuft es eher folgendermaßen ab:

1. Man schreibt den Quellcode.

2. Man übersetzt den Quellcode in Objektcode.

3. Man behebt Fehler und wiederholt die Schritte 1 und 2.

4. Man verknüpft den Objektcode mit Bibliotheken, um das Programm zu erzeugen.

5. Man behebt Fehler und wiederholt die Schritte 1 bis 4.

6. Man lässt das Programm laufen und testet es.

7. Man behebt Programmfehler (engl. Bug Fixing), indem man den gesamten Prozess wiederholt.

Oder, was häufiger vorkommt: Das Programm läuft gut, doch Sie möchten eine Funktion hinzufügen oder ein Element weiterentwickeln. Dann wiederholt man alles.

Hoffentlich sind die Schritte 3, 5 und 7 nicht allzu häufig notwendig. Trotzdem müssen Sie in einem Programmierkreislauf häufig Fehler beheben.

Die guten Neuigkeiten bestehen darin, dass der Computer brav die Fehler meldet und Ihnen sogar zeigt, wo sie sind. Das ist besser als einen Fehler in kilometerlangen Drähten, wie zur Zeit des ENIAC (Electronic Numerical Integrator and Computer), aufzuspüren.

image Wenn Sie eine IDE verwenden, werden die Schritte des Übersetzens und Verbindens durch den Befehl Buil d ausgeführt. Die Schritte Übersetzen, Verbinden und Laufen lassen werden durch den Befehl Buil d and Run ausgelöst. Ungeachtet des Ausdrucks Build übersetzt die IDE Objektcode, verbindet Bibliotheken und erstellt ein endgültiges Programm.

image Einer meiner Freunde, der professionell programmiert, schlug vor, dass diese Kunstform Debugging (engl. für Fehlerbehebung) statt Programmierung heißen sollte.

image Die Legende besagt, dass der erste Computerfehler (engl. Computer Bug) buchstäblich ein Insekt war, das Grace Hopper in der Verdrahtung eines frühen Computers fand. Es gibt aber einige Zweifel an dieser Legende, vor allem, wenn man bedenkt, dass das englische Wort bug (dt. Insekt) schon seit Shakespeares Zeiten verwendet wird, um etwas Skurriles oder Seltsames zu beschreiben.

Quellcode schreiben

Der Quellcode (oder Quelltext) verkörpert den Teil des Prozesses, der die Programmiersprache selber enthält. Sie verwenden einen Texteditor zum Schreiben einer Quelltextdatei.

In diesem Buch wird der Quellcode in Listings angegeben, wie das Beispiel in Listing 2.1 zeigt.

Listing 2.1: Das Standardprogramm »Hello World«

#include <stdio.h>

int main()
{
    puts("Sei gegrüßt, Mensch.");
    return 0;
}

Zeilenzahlen werden in den Listings nicht angezeigt, da es Sie verwirren könnte. Außerdem werden Zeilennummern im Editor angegeben, wenn Sie es eingeben.

Jetzt sollten Sie den Quelltext aus einem Listing als Teil einer Aufgabe eingeben, zum Beispiel:

Übung 2.1: Starten Sie ein neues Projekt in Code::Blocks. Nennen Sie das Projekt ex0201.

Führen Sie es aus: Erfüllen Sie Übung 2.1 und starten Sie gemäß der folgenden Schritte ein neues Projekt namens ex0201 in Code::Blocks:

1. Erzeugen Sie in Code::Blocks eine neue Tastaturanwendung, ein C–Projekt namens ex0201.

Lesen Sie in Kapitel 1 nach, wenn Sie diesen Schritt absolut nicht verstehen.

2. Geben Sie den Code aus Listing 2.1 in den Editor ein.

Sie können das von Code::Blocks gegebene Gerüst löschen oder es einfach so bearbeiten, dass das Ergebnis mit Listing 2.1 übereinstimmt.

3. Speichern Sie die Quelltextdatei, indem Sie den Befehl File|Save File auswählen.

Da haben Sie es. Sie haben gerade den ersten Schritt im Prozess des Programmierens beendet – das Schreiben des Quellcodes. Im nächsten Abschnitt setzen Sie Ihre Reise mithilfe des Compilers fort.

image Alle C–Quelltextdateien enden mit der Dateinamenserweiterung (Extension) .c (»dot–see«).

image Wenn Sie Windows verwenden, empfehle ich, dass Sie die Einstellungen des Ordners so wählen, dass die Dateinamenserweiterung angezeigt wird.

image In C++ haben die Quelltextdateien die Erweiterung .cpp (»dot–see–pee–pee«). Ich sollte es unterlassen, hier einen kindischen Witz zu bringen.

image Quelltextdateien werden genauso benannt wie alle anderen Dateien auf einem Computer auch. Gewöhnlich hat ein kleines Programm den gleichen Quelltextdateinamen wie das endgültige Programm. Wenn Ihr Programm puzzle heißt, dann heißt der Quelltext puzzle.c. Der Dateiname main.c wird von Code::Blocks verwendet, doch er muss nicht unbedingt main.c lauten.

image In Code::Blocks ist der endgültige Dateiname der gleiche wie der Name des Projekts, so dass eine Änderung des Quelltextdateinamens nicht wichtig ist.

In Objektcode verwandeln

Ein Compiler ist ein Programm, das Text aus einer Quelltextdatei liest und diesen Text – eine Programmiersprache – in etwas übersetzt, das Objektcode genannt wird. In C bearbeitet der Compiler auch spezielle Instruktionen, die Präprozessordirektiven genannt werden.

Listing 2.1 enthält beispielsweise folgende Präprozessordirektive:

#include <stdio.h>

Die Direktive include weist den Compiler an, die Header–Datei stdio.h ausfindig zu machen. Die Inhalte dieser Datei werden dem Quelltext hinzugefügt; anschließend werden beide durch den Compiler in eine Objektcodedatei verwandelt. Die Objektcodedatei hat den gleichen Namen wie die Quelltextdatei, aber mit der Dateinamenerweiterung .o (»dot–oh«).

Wenn der Compiler Ihren C–Code in Objektcode übersetzt, überprüft er ihn auf gängige Fehler, fehlende Elemente und andere Aspekte. Wenn etwas falsch ist, zeigt der Compiler eine Fehlerliste an. Um die Fehler zu beheben, überarbeiten Sie den Quellcode und probieren Sie erneut, den Text zu übersetzen.

Fahren Sie mit Übung 2.1 fort: In Code::Blocks erfolgt das Übersetzen durch folgenden Schritt:

4.Choose Build|Compile Current File.

Das Fenster Buil d Log zeigt die Ergebnisse an, die keine Fehler und keine Warnungen enthalten. Gut, aber wenn Sie sich vertippt haben, dann überprüfen Sie Ihren Quelltext anhand von Listing 2.1 im vorangegangenem Abschnitt.

Normalerweise würden Sie an dieser Stelle, wie in Kapitel 1 erläutert, den Befehl Buil d wählen. Aber wenn Sie nur umwandeln wollen, verwenden Sie den Befehl Compil e Cur r ent Fil e.

Bei Erfolg erzeugt der Compiler eine Objektcodedatei. Da die Quellcodedatei main.c heißt, heißt die Objektcodedatei main.o.

In Code::Blocks findet man die Objektcodedatei im Projektordner innerhalb der Unterordner obj/Release oder obj/Debug.

Mit der Bibliothek von C verknüpfen

Der Linker ist das Werkzeug, das das endgültige Programm erzeugt. Er macht das, indem er die Objektcodedatei mit den Bibliotheken der Programmiersprache C verbindet. Die Bibliotheken enthalten die aktuellen Instruktionen, die dem Computer (oder einem anderen Gerät) sagen, was zu machen ist. Diese Instruktionen werden auf der Grundlage der Kurzschriftanweisungen ausgewählt und ausgeführt, die im Objektcode enthalten sind.

In Listing 2.1 steht beispielsweise das Wort puts. Dieses Wort ist in C eine Funktion, die in diesem Text in der Form puts() geschrieben wird. Sie steht für put string.

Der Compiler übersetzt puts() in ein Token (eine bestimmte Zeichenkette) und speichert dieses Token in der Objektcodedatei main.o.

Der Linker verbindet die Objektdatei mit der Standardbibliotheksdatei der Sprache, um das endgültige Programm zu erzeugen. Wenn Fehler ermittelt werden (an dieser Stelle hauptsächlich unbekannte Token) stoppt der Prozess, genau wie beim Compiler und Sie werden vor dem möglichen Unruhestifter gewarnt. Andernfalls wird ein vollständig funktionierendes Programm erzeugt.

In Code::Blocks wird der Befehl Build zum Verwandeln und Verknüpfen verwendet: Der IDE fehlt ein eigener Befehl zum Verknüpfen.

Fahren Sie mit Übung 2.1 fort: Erstellen Sie das Projekt ex0201. Dieser Schritt sieht wie folgt aus:

5.Wählen Sie den Befehl Build|Build.

Code::Blocks verknüpft die Objektdatei mit der Standardbibliotheksdatei von C, um eine Programmdatei zu erzeugen.

Der nächste und letzte Schritt in dem Prozess besteht darin, dass Programm laufen zu lassen.

image Der Text, den ein Programm handhabt, wird als String bezeichnet; dies betrifft jeden Text, der länger als ein einzelner Buchstabe ist. In C wird ein String in Gänsefüßchen eingeschlossen:

"Hallo! Ich bin ein String."

image Das endgültige Programm enthält die Bibliothek der Programmiersprache C zusammen mit dem Objektcode. Dies erklärt, warum eine Programmdatei größer als die sie erzeugende Quelltextdatei ist.

image Einige C–Programme verbinden sich mit verschiedenen Bibliotheken, je nachdem, was das Programm erfordert. Zusätzlich zu den Standardbibliotheken von C können Sie weitere Bibliotheken verlinken, um mit Grafiken, Vernetzung, Ton und so weiter zu arbeiten. Wenn Sie mehr über das Programmieren lernen, werden Sie entdecken, wie man verschiedene Bibliotheken wählt und verknüpft. In Kapitel 24 werden die Einzelheiten erläutert.

Durchlaufen und testen