Neben den unabdingbaren #include
-Anweisungen sollte der
Präprozessor nicht übermäßig verwendet werden.
Eine sicher sinnvolle Anwendung ist die Verwaltung verschiedener
Versionen eines Quelltextes, beispielsweise für verschiedene
Systemumgebungen oder verschiedene Kunden mit #ifdef
beziehungsweise #if
.
Wenn ein Programmierer von C zu C++ wechselt, ist er sicher versucht, den Präprozessor für viele Dinge einzusetzen, die in C++ aber besser über Sprachkonstrukte realisiert werden:
#define PI 3.141592
) ist
wesentlich besser mit const-deklarierte Variablen (const
double pi=3.141592;).
#define MAX(a,b)...
) sind
gefährlich, und sollten durch template-Funktionen
(siehe Funktionsschablonen (template-Funktionen)) ersetzt werden.
Um die Laufzeitvorteile der tatsächlich schnellen Makros mit template-Funktionen einzuholen, kann man diese als inline deklarieren.