#include <math.h>
Variablen des Präprozessors werden mittels
#define MY_DEBUG
definiert und wir können auch testen, ob sie definiert sind:
#ifdef MY_DEBUG
cout << "Im Debug-Modus" << endl;
#endif
Analog kann mit
#ifndef MY_DEBUG
#define MY_DEBUG
#endif
zunächst getestet werden, ob die Variable MY_DEBUG
bereits definiert wurde. Falls nicht, dann wird sie eben jetzt
definiert. Diese Technik wird häufig benutzt um zu verhindern, daß
die Deklarationen eines Headerfiles mehrfach in denselben
Quelltext eingebunden werden.
(siehe studenten4.hh)
// studenten4.hh #ifndef FILE_STUDENTEN #define FILE_STUDENTEN // Deklarationen des Headefiles ... #endif |
Einer Präprozessorvariablen kann auch ein Wert zugewiesen werden
#define SEE_PI 5
welcher anschließend in Präprozessortests (oder im Programm
als Konstante) benutzt werden kann:
#if (SEE_PI==5)
cout << " PI = " << M_PI << endl;
#else
// leer oder Anweisungen
#endif
Eine häufige Anwendung besteht in der Zuweisung eines Wertes zu einer
Präprozessorvariablen, falls diese noch nicht definiert wurde
#ifndef M_PI
#define M_PI 3.14159
#endif
Desweiteren können Makros mit Parametern definiert
#define MAX(x,y) (x>y ? x : y)
und im Quelltext verwendet werden.
cout << MAX(1.456 , a) << endl;
Mehr über Präprozessorbefehle ist u.a. in
[God98] und [Str00, $A.11]
zu finden.