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.

16 2. Datentypen und Variablen<br />

Libraries noch verschiedenste Typdef<strong>in</strong>itionen für e<strong>in</strong>en boolschen Wert,<br />

die von boolean über Boolean und BOOL bis zu bool reichen. Natürlich<br />

gab es auch die entsprechenden Def<strong>in</strong>itionen der Wahrheitswerte dazu,<br />

die ebenfalls nicht standardisiert waren. Beliebige Schreibweisen wie z.B.<br />

TRUE/FALSE für die Wahrheitswerte existierten.<br />

Um diesem Wildwuchs E<strong>in</strong>halt zu gebieten, wurde der Datentyp bool mit<br />

den dazugehörigen Wahrheitswerten true und false <strong>in</strong> den C ++ Standard<br />

aufgenommen. Wo auch immer man also explizit e<strong>in</strong>en boolschen<br />

Wert braucht, wird unbed<strong>in</strong>gt die Verwendung dieses Typs empfohlen.<br />

Rekapituliert man kurz die Def<strong>in</strong>ition von C, die auch C ++ voll<strong>in</strong>haltlich<br />

zugrunde liegt, wann etwas als wahr bzw. falsch <strong>in</strong>terpretiert wird, dann<br />

kommt man schnell auf des Pudels Kern, wie e<strong>in</strong> bool <strong>in</strong>tern funktioniert:<br />

• E<strong>in</strong> Ganzzahlenwert von 0 wird als false <strong>in</strong>terpretiert.<br />

• Jeder Ganzzahlenwert ungleich 0 wird als true <strong>in</strong>terpretiert.<br />

Der Datentyp bool ist <strong>in</strong> Wirklichkeit h<strong>in</strong>ter den Kulissen e<strong>in</strong> Ganzzahlendatentyp.<br />

Es ist für ihn ke<strong>in</strong>e bestimmte Größe vorgeschrieben.<br />

Üblicherweise wird e<strong>in</strong> bool <strong>in</strong>tern durch e<strong>in</strong>en char oder auch e<strong>in</strong>en<br />

short (siehe unten) repräsentiert.<br />

Per Def<strong>in</strong>ition ist false die Ganzzahl 0. Weil nun für true das ganze<br />

Spektrum aller möglichen Zahlen ungleich 0 zur Verfügung steht, e<strong>in</strong>igte<br />

man sich darauf, true durch die Ganzzahl 1 zu repräsentieren.<br />

Wo auch immer Variablen vom Typ bool <strong>in</strong> Rechenoperationen verwendet<br />

werden (ja, das funktioniert, bool ist ja e<strong>in</strong>e Ganzzahl!), werden sie<br />

implizit zu <strong>in</strong>t (siehe unten) umgewandelt. E<strong>in</strong>e Zuweisung von e<strong>in</strong>er<br />

Ganzzahl auf e<strong>in</strong>en bool führt dazu, dass e<strong>in</strong> Wert von 0 zu false wird<br />

(was sonst, false ist ja auch 0 :-)) und jeder Wert ungleich 0 wird konvertiert<br />

zu true (also e<strong>in</strong>fach zu 1).<br />

Verwirrend? Ke<strong>in</strong>e Sorge, wir werden <strong>in</strong> der Folge noch e<strong>in</strong> Beispiel<br />

betrachten, <strong>in</strong> dem diese Zusammenhänge genau demonstriert werden.<br />

Das E<strong>in</strong>zige, was es mit bool, true und false auf sich hat, ist, dass<br />

hier e<strong>in</strong> eigener Datentyp e<strong>in</strong>geführt wurde und die Wahrheitswerte im<br />

Endeffekt genau def<strong>in</strong>iert auf 0 und 1 abgebildet werden, anstatt auf 0<br />

und “irgendwas ungleich 0”, um dem existierenden Wildwuchs e<strong>in</strong> Ende<br />

zu setzen.<br />

<strong>in</strong>t:<br />

Der Datentyp <strong>in</strong>t (oder ganz genau signed <strong>in</strong>t, diese Schreibweise<br />

ist aber nicht üblich) repräsentiert den vorzeichenbehafteten Standard-<br />

Ganzzahlentyp auf der jeweiligen Zielplattform. Es gibt ke<strong>in</strong>e Regel, wie<br />

groß denn nun e<strong>in</strong> <strong>in</strong>t tatsächlich ist. Heute üblich ist e<strong>in</strong>e Größe von<br />

32 Bit, verlassen darf man sich darauf allerd<strong>in</strong>gs niemals! Bis vor nicht<br />

allzu langer Zeit waren 16 Bit für e<strong>in</strong>en <strong>in</strong>t auf PC-Systemen durchaus<br />

üblich. Was passiert, wenn man sich darauf verlässt, dass 32 Bit<br />

zur Verfügung stehen (Wertebereich ca. -2 Mrd.–2 Mrd.) und plötzlich

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!