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

136 7. Der Preprocessor<br />

und der Zielplattform, zweitens sollte man sie wirklich nur <strong>in</strong> sehr speziellen<br />

Fällen verwenden, die im “normalen” Alltag e<strong>in</strong>es Softwareentwicklers<br />

außerordentlich selten vorkommen.<br />

Leser, die bisher noch gar nichts mit dem Preprocessor <strong>in</strong> C zu tun hatten,<br />

möchte ich an dieser Stelle kurz auf Kapitel 16 von <strong>Softwareentwicklung</strong> <strong>in</strong> C<br />

h<strong>in</strong>weisen.<br />

7.1 Include Files<br />

Die Preprocessor Anweisung zum E<strong>in</strong>fügen von Include Files haben wir bereits<br />

gleich zu Beg<strong>in</strong>n des Buchs kennen gelernt und durchgehend <strong>in</strong> unseren<br />

Programmen verwendet:<br />

#<strong>in</strong>clude file_identifier<br />

Statt dem Begriff des Files habe ich hier absichtlich den Begriff<br />

file_identifier verwendet, denn wir haben es hier mit zwei verschiedenen<br />

Formen zu tun, wie man Files e<strong>in</strong>fügt. E<strong>in</strong>erseits gibt es die sogenannten<br />

System Headers, also solche, die im Suchpfad des Compilers gefunden werden.<br />

Zu diesen gehören <strong>in</strong> jedem Fall alle Standard Headers für e<strong>in</strong>e Plattform.<br />

Je nach Projekt kann man natürlich auch e<strong>in</strong>es der Projekt Include-<br />

Subdirectories <strong>in</strong> den Suchpfad aufnehmen. Damit werden die dort enthaltenen<br />

Headers auch als System Headers gefunden. Neben diesen Headers<br />

gibt es auch noch die Project Headers, also solche, die nicht im Suchpfad des<br />

Compilers stehen.<br />

Folgende Konventionen gibt es für die entsprechenden #<strong>in</strong>clude Anweisungen:<br />

System Headers: Diese werden <strong>in</strong>kludiert, <strong>in</strong>dem man den Filenamen des<br />

Headers <strong>in</strong> spitze Klammern e<strong>in</strong>fasst. Außerdem ist <strong>in</strong> C ++ die Konvention,<br />

dass man bei System Headers die Extension .h nicht angibt,<br />

wie bereits <strong>in</strong> Abschnitt 2.3 genauer erklärt wurde. Die Anweisung<br />

#<strong>in</strong>clude <br />

bewirkt also e<strong>in</strong> E<strong>in</strong>fügen des Files iostream aus dem Suchpfad des Compilers<br />

an der Stelle im File, an der das #<strong>in</strong>clude Statement steht. Es ist<br />

allerd<strong>in</strong>gs nicht gesagt, dass das File e<strong>in</strong>fach nur iostream heißt, obwohl<br />

dies zumeist der Fall ist. Der Compiler könnte auch <strong>in</strong>tern mit Headers<br />

mit beliebigen Extensions arbeiten, die er selbst verwaltet.<br />

Project Headers: Diese werden <strong>in</strong>kludiert, <strong>in</strong>dem man den Filenamen des<br />

Headers <strong>in</strong> doppelte Anführungszeichen e<strong>in</strong>fasst. Bei diesen Headers darf<br />

die Extension .h nicht weggelassen werden. Auch dazu kennen wir bereits<br />

e<strong>in</strong>en Kandidaten:<br />

#<strong>in</strong>clude "user_types.h"<br />

bewirkt also e<strong>in</strong> E<strong>in</strong>fügen des Files user_types.h an der Stelle im File,<br />

an der das #<strong>in</strong>clude Statement steht. Project Headers werden immer

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!