30.06.2013 Aufrufe

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

2.2 Deklaration, Def<strong>in</strong>ition und Initialisierung 23<br />

dass Programme lange Zeit sche<strong>in</strong>bar fehlerlos arbeiten, bis plötzlich nach<br />

e<strong>in</strong>er kle<strong>in</strong>en Änderung an irgende<strong>in</strong>er Stelle im Programm die unerklärlichsten<br />

D<strong>in</strong>ge passieren, obwohl der geänderte Teil und der verrückt spielende<br />

Teil im Pr<strong>in</strong>zip gar nichts mite<strong>in</strong>ander zu tun haben. Wenn so etwas unter<br />

dem üblichen Zeitdruck bei der <strong>Softwareentwicklung</strong> passiert, freuen sich<br />

die Hersteller von Kaffeeautomaten und die Pizzalieferanten, denn die spätnächtliche<br />

Debugg<strong>in</strong>g-Session ist damit garantiert (mit etwas Glück ist es nur<br />

e<strong>in</strong>e Nacht :-)).<br />

Da das Thema der <strong>in</strong>ternen Abwicklung der Initialisierung mit dem jetzigen<br />

Wissensstand noch nicht erschöpfend abgehandelt werden kann, vor<br />

allem da es im Kontext mit den OO-Features von C ++ noch e<strong>in</strong>iges dazu zu<br />

sagen gibt, möchte ich es im Augenblick bei diesen grundsätzlichen Aussagen<br />

belassen. Wo auch immer es wichtige weitere Fakten dazu gibt, werden diese<br />

ergänzend angeführt.<br />

E<strong>in</strong>e Kle<strong>in</strong>igkeit, die zwar auch bei der Initialisierung gebraucht wird,<br />

aber im Pr<strong>in</strong>zip e<strong>in</strong> eigenes Thema ist, s<strong>in</strong>d die sogenannten Literals. Als<br />

Literals werden explizite konstante Zahlen- (z.B. 17, 12.5, etc.) und andere<br />

Werte (z.B. ’a’, true) bezeichnet.<br />

Ich möchte das Thema dieser besonderen Konstanten bzw. Literals hier nur<br />

kurz und beispielhaft behandeln, da es im Pr<strong>in</strong>zip völlig <strong>in</strong>tuitiv ist. Leser,<br />

die sich nach dieser kurzen Beschreibung vielleicht doch nicht so sicher fühlen,<br />

möchte ich auf Kapitel 4 aus <strong>Softwareentwicklung</strong> <strong>in</strong> C verweisen.<br />

Leser, die mit dem oktalen oder dem hexadezimalen Zahlensystem noch<br />

nicht vertraut s<strong>in</strong>d, f<strong>in</strong>den zusätzliche Information dazu <strong>in</strong> Abschnitt A.2.2<br />

im Buch <strong>Softwareentwicklung</strong> <strong>in</strong> C.<br />

Ganzzahlen-Literals: Diese s<strong>in</strong>d im Kontext mit allen verschiedenen Variationen<br />

von Ganzzahl-Datentypen verwendbar, also für <strong>in</strong>t, short,<br />

unsigned, etc., natürlich auch für char bzw. unsigned char und, last,<br />

but not least auch bei bool. Bei Verwendung im Kontext mit bool gibt<br />

es noch e<strong>in</strong> paar Kle<strong>in</strong>igkeiten zu wissen, e<strong>in</strong> Beispiel dazu f<strong>in</strong>det sich<br />

weiter unten.<br />

Die üblichste Schreibweise, die für die meisten Belange die beste ist,<br />

ist die völlig <strong>in</strong>tuitive Dezimalschreibweise: Man schreibt e<strong>in</strong>fach die<br />

gewünschte Zahl, also z.B. 12, 348. Neben dieser Schreibweise gibt es<br />

aber noch zwei besondere Schreibweisen, nämlich die hexadezimale (=zur<br />

Basis 16) und die oktale (=zur Basis 8). Oktalzahlen werden durch e<strong>in</strong>e<br />

vorangestellte 0 gekennzeichnet, Hexadezimalzahlen (kurz: hex-Zahlen)<br />

durch das Präfix 0x. Die folgenden Literals s<strong>in</strong>d also im Pr<strong>in</strong>zip gleichwertig:<br />

18, 0x12 und 022, denn die letzteren beiden s<strong>in</strong>d nur andere<br />

Darstellungen von 18 im hexadezimalen bzw. oktalen Zahlensystem.<br />

Will man e<strong>in</strong> Ganzzahlen-Literal explizit als unsigned kennzeichnen, so<br />

gibt man ihm das Suffix U bzw. u. Will man explizit e<strong>in</strong> long-Literal, so

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!