Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<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 10.09.2009 14:23:00 Letzte Änderung am: 10. September 2009 Version 2.4.1, I. Oesch 67/147