Bedingte Compilierung

Wie schon erwähnt kann man den Präprozessor auch dazu nutzen, Teile des Quelltextes zu selektieren. Dazu sollen hier drei Beispiele behandelt werden:

  1. Verhindern einer zweiten Compilierung
  2. Selektieren von Debugging-Code
  3. Plattformübergreifende Programmierung

Der erste Punkt ist interessant, wenn man Quelltexte schreibt, die in mehrere andere eingebunden werden sollen. Dies ist insbesondere bei den später zu besprechenden headerfiles kritisch.

Der zweite Punkt bietet eine einfache Möglichkeit zusätzlichen Code zum Debuggen mit in den Quelltext aufzunehmen, um ihn je nach Bedarf mitzucompilieren zu lassen oder nicht. Im letzteren Fall ist dabei gewährleistet, daß das Programm keine Performanceverluste hat, was es bei einer Verwendung von Abfragen während der Laufzeit hätte.

Beim dritten Punkt soll dann dargestellt werden, wie man einen Quelltext für mehrere Prozessoren, Betriebssysteme, graphische Oberflächen o.ä. gleichzeitig zur Verfügung stellen kann, indem man während der Compilierung entsprechenden Code selektiert.

Die grundlegenden Präprozessorbefehle für diese Funktionen sind #ifdef und #ifndef, die überprüfen, ob ein Symbol gesetzt(definiert) ist, oder nicht. Sie werden beide mit #endif abgeschlossen und nach #else kann ein Alternativzweig angegeben werden.