17.01.2014 Aufrufe

Softwareentwicklung in C - ASC

Softwareentwicklung in C - ASC

Softwareentwicklung in C - ASC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

32 4. Datentypen und Variablen<br />

die Ganzzahlenkonstante zu groß se<strong>in</strong>, um noch als <strong>in</strong>t gespeichert werden<br />

zu können, so wird vom Compiler automatisch long angenommen. Z.B.<br />

0x8FFFFFFFF wäre für e<strong>in</strong>en 32 Bit <strong>in</strong>t zu lang, also wird e<strong>in</strong> long daraus.<br />

Schlecht ist es nur, wenn z.B. auf der Zielmasch<strong>in</strong>e long auch mit 32 Bit<br />

def<strong>in</strong>iert wäre, denn dann wird das e<strong>in</strong> netter, kle<strong>in</strong>er Programmfehler, da<br />

die Zahl abgeschnitten wird. Freundliche Compiler bemängeln zum Glück <strong>in</strong><br />

solchen Fällen, dass da e<strong>in</strong> Problem existiert.<br />

Wenden wir uns nun auch noch kurz den Gleitkommazahlen zu. Wie<br />

zu erwarten s<strong>in</strong>d 12.375, -23.1 etc. gültige Darstellungsformen für Gleitkommazahlen.<br />

Auch die “wissenschaftliche” Schreibweise 1.24e3 (steht<br />

für 1.24 ∗ 10 3 ), oder 1.38e-2 etc ist zulässig. Der Compiler <strong>in</strong>terpretiert<br />

Gleitkomma-Konstanten immer implizit als Typ double. Will man nun e<strong>in</strong>en<br />

float Wert, so muss man ihm das Suffix F bzw. f spendieren, also z.B.<br />

12.85f.<br />

Last, but not least, gibt es natürlich auch für char-Werte besondere<br />

Konstantenschreibweisen. E<strong>in</strong>e char-Konstante wird immer durch e<strong>in</strong>fache<br />

Anführungszeichen begrenzt, ’x’ z.B. repräsentiert das Zeichen x (im Zeichensatz<br />

des Zielsystems). Dies ist notwendig, da man sonst z.B. Variablennamen<br />

nicht von Zeichen unterscheiden könnte. Nun gibt es aber auch Zeichen,<br />

die man so e<strong>in</strong>fach nicht darstellen kann, z.B. Zeilenumbruch, Tabulator etc.<br />

Diese werden durch Escape-Sequenzen repräsentiert (natürlich auch wiederum<br />

<strong>in</strong> e<strong>in</strong>fachen Anführungszeichen). E<strong>in</strong>e davon haben wir bereits <strong>in</strong> unserem<br />

“Hello World” Beispiel kennen gelernt. E<strong>in</strong>e Escape-Sequenz beg<strong>in</strong>nt<br />

immer mit e<strong>in</strong>em \ (=Backslash) und wird gefolgt von zum<strong>in</strong>dest e<strong>in</strong>em<br />

Zeichen. Man kann sich leicht vorstellen, dass damit das Backslash-Zeichen<br />

selbst auch noch durch e<strong>in</strong>e solche Escape-Sequenz dargestellt werden muss,<br />

da es ja durch se<strong>in</strong>e besondere Bedeutung sonst selbst nicht mehr darstellbar<br />

wäre. Die wichtigsten vordef<strong>in</strong>ierten Escape-Sequenzen s<strong>in</strong>d:<br />

Sequenz Bedeutung<br />

\n Zeilenumbruch<br />

\t Tabulator<br />

\0 Das 0-Byte<br />

\\ Backslash<br />

\’ E<strong>in</strong>faches Anführungszeichen<br />

Will man e<strong>in</strong> Zeichen als char-Konstante schreiben, das weder direkt darstellbar<br />

ist noch als vordef<strong>in</strong>ierte Escape-Sequenz zur Verfügung steht, so<br />

kann man direkt auch dessen <strong>ASC</strong>II-Code (=numerischer Zeichencode) <strong>in</strong> e<strong>in</strong>e<br />

Escape-Sequenz verpacken. Dies hat dann die Form ’\ddd’, wobei ddd für<br />

e<strong>in</strong>e Folge von bis zu drei oktalen Ziffern steht. Die Konstante ’\014’ z.B. repräsentiert<br />

den <strong>ASC</strong>II-Wert für “Form-Feed”. <strong>ASC</strong>II-Codes und Zeichensatz-<br />

Tabellen s<strong>in</strong>d vielfach <strong>in</strong> der Literatur und am Web zu f<strong>in</strong>den, z.B. auch auf<br />

dem Server<br />

http://www.asciitable.com

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!