06.10.2013 Aufrufe

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

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.

<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />

18.2 Vordef<strong>in</strong>ierte Makros:<br />

Folgende Makros s<strong>in</strong>d <strong>in</strong> jedem Compiler vordef<strong>in</strong>iert (Je nach Hersteller s<strong>in</strong>d noch weitere möglich):<br />

__LINE__ <strong>E<strong>in</strong>e</strong> dezimale Integerkonstante, welche der aktuellen Zeilennummer entspricht, kann für Runtime-Fehlermeldungen<br />

benutzt werden.<br />

__FILE__ <strong>E<strong>in</strong>e</strong> Str<strong>in</strong>gkonstante, welche dem aktuellen Date<strong>in</strong>amen entspricht<br />

__DATE__ <strong>E<strong>in</strong>e</strong> Str<strong>in</strong>gkonstante, welche das aktuelle Compiledatum enthält, kann für Versionsangaben<br />

verwendet werden<br />

__TIME__ <strong>E<strong>in</strong>e</strong> Str<strong>in</strong>gkonstante, welche <strong>die</strong> aktuelle Compilezeit enthält, kann für Versionsangaben verwendet<br />

werden<br />

__STDC__ Ist 1 wenn der Compiler dem ANSI-C-Standard entspricht, sonst 0<br />

18.3 Beispiele<br />

/* Def<strong>in</strong>ition e<strong>in</strong>iger Makros */<br />

#def<strong>in</strong>e VERSION 103<br />

#def<strong>in</strong>e DEBUG<br />

#def<strong>in</strong>e PI 3.1416<br />

#def<strong>in</strong>e ERROR_MESSAGE(x) \<br />

pr<strong>in</strong>tf("Internal error <strong>in</strong> file %s at l<strong>in</strong>e %d: %s", __FILE__, __LINE__, x)<br />

<strong>in</strong>t ma<strong>in</strong>(<strong>in</strong>t argc, char *argv[])<br />

{<br />

<strong>in</strong>t i = 0;<br />

/* Ausgabe von Version <strong>und</strong> Compiledatum <strong>und</strong> -zeit */<br />

pr<strong>in</strong>tf("Version %d (Compiled at %s %s)\n", VERSION, __DATE__, __TIME__);<br />

/* Bed<strong>in</strong>gte Compilierung abhaeng<strong>in</strong>g von DEBUG */<br />

#ifdef DEBUG<br />

pr<strong>in</strong>tf("i ist %d\n", i);<br />

#endif<br />

/* Bed<strong>in</strong>gte Compilierung, im Moment fix ausgeschaltet */<br />

/* Mit <strong>die</strong>sem Konstrukt koennen groessere Codeteile e<strong>in</strong>fach */<br />

/* Zu Testzwecken temporaer deaktiviert werden (Anstatt sie */<br />

/* zu loeschen <strong>und</strong> anschliessend wieder e<strong>in</strong>zufuegen */<br />

#if 0<br />

/* Testcode */<br />

if (i == 2) {<br />

i++;<br />

}<br />

#endif<br />

/* Benutzung von Makros */<br />

if (i == 0) {<br />

ERROR_MESSAGE("Division by 0!");<br />

i = 1;<br />

}<br />

pr<strong>in</strong>tf(" Wert ist %f\n", PI/i);<br />

}<br />

return 0;<br />

Gedruckt am 11.09.2008 13:04:00 Letzte Änderung am: 11. September 2008 Version 2.4, I. Oesch 67/147

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!