17.01.2014 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.

34 4. Datentypen und Variablen<br />

e<strong>in</strong> gültiger Kommentar <strong>in</strong> C. Kommentare können an jeder beliebigen Stelle<br />

beg<strong>in</strong>nen, und sie können sich auch über beliebig viele Zeilen erstrecken, sie<br />

s<strong>in</strong>d erst mit dem Kommentar-Ende-Zeichen tatsächlich beendet.<br />

Vorsicht Falle: Es ist nicht erlaubt, Kommentare <strong>in</strong> irgende<strong>in</strong>er Form <strong>in</strong>e<strong>in</strong>ander<br />

zu schachteln (Man spricht von Nest<strong>in</strong>g von Kommentaren)! Dies<br />

wird vom Compiler mit netten Fehlermeldungen quittiert. Als Beispiel ist<br />

/* I am /* I am nested <strong>in</strong>side */ a comment */<br />

ke<strong>in</strong> gültiger Kommentar!<br />

Nun werden Kommentare nicht nur dazu gebraucht, um Erklärungen <strong>in</strong> den<br />

laufenden Code zu schreiben, sondern auch um z.B. bei der Fehlersuche gewisse<br />

Programmteile für den Compiler “unsichtbar” zu machen (im Jargon:<br />

sie auszukommentieren). Dabei passiert es dann schon sehr schnell e<strong>in</strong>mal,<br />

dass unabsichtlich e<strong>in</strong> Nest<strong>in</strong>g entsteht. Es genügt ja schon, wenn man e<strong>in</strong>en<br />

Programmteil auskommentiert, der selbst bereits erklärende Kommentare<br />

enthält. Deshalb werden wir an dieser Stelle die Spuren des re<strong>in</strong>en Ur-C<br />

e<strong>in</strong>mal ganz kurz verlassen und uns mit e<strong>in</strong>er moderneren Form von Kommentaren<br />

vertraut machen:<br />

E<strong>in</strong>e Sequenz von zwei Slashes (//) an e<strong>in</strong>er beliebigen Stelle <strong>in</strong> e<strong>in</strong>er Zeile<br />

beg<strong>in</strong>nt e<strong>in</strong>en Kommentar. Diese Art von Kommentaren ist automatisch mit<br />

dem Zeilenende abgeschlossen. Hierbei kann also das unselige Problem des<br />

Nest<strong>in</strong>gs nicht mehr auftreten, dementsprechend wird empfohlen, nur mit<br />

dieser Art von Kommentaren zu arbeiten. E<strong>in</strong> gültiger Kommentar wäre<br />

also <strong>in</strong> dieser Schreibweise z.B.:<br />

// I am a comment that ends at the end of this l<strong>in</strong>e<br />

(Ke<strong>in</strong>e Angst – <strong>in</strong>nerhalb von Str<strong>in</strong>gs darf die Sequenz // ungestraft vorkommen,<br />

ohne als Kommentar <strong>in</strong>terpretiert zu werden. Man muss also hier<br />

nicht zu Escape-Sequenzen greifen, wie oft von C-Anfängern fälschlicherweise<br />

angenommen.)<br />

So, Schluss mit der Theorie, wir wollen jetzt genau wissen, wie groß die<br />

e<strong>in</strong>zelnen Datentypen auf unserem Rechner wirklich s<strong>in</strong>d. Dazu erstellen wir<br />

e<strong>in</strong> Programm namens test_types.c mit folgendem Inhalt:<br />

1 // t e s t t y p e s . c − This program p r i n t s the s i z e o f the i n t e r n a l<br />

2 // r e p r e s e n t a t i o n of p r i m i t i v e C datatypes<br />

3<br />

4 char a char = ’ \ 0 ’ ;<br />

5 <strong>in</strong>t a n i n t = 0;<br />

6 short a s h o r t = 0;<br />

7 long a long = 0;<br />

8 float a f l o a t = 0.0 f ;<br />

9 double a double = 0 . 0 ;<br />

10<br />

11 ma<strong>in</strong> ( )<br />

12 {<br />

13 p r i n t f ( " Size of char : %d Byte (s )\ n" , sizeof ( a char ) ) ;<br />

14 p r i n t f ( " Size of <strong>in</strong>t : %d Byte (s )\ n" , sizeof ( a n i n t ) ) ;<br />

15 p r i n t f ( " Size of short : %d Byte (s )\ n" , sizeof ( a s h o r t ) ) ;<br />

16 p r i n t f ( " Size of long : %d Byte (s )\ n" , sizeof ( a long ) ) ;<br />

17 p r i n t f ( " Size of float : %d Byte (s )\ n" , sizeof ( a f l o a t ) ) ;

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!