Was ist ein Makro und wozu kann ich es benutzen?
Ein parameterloses Makro (Makro mit Parametern erkläre ich in späteren Teilen dieses Tutorials) ist nichts anderes wie eine Symbolische Konstante. Der Unterschied: es wird nicht dazu benutzt Texte oder Zahlen zu "speichern" sondern Befehle. Wenn z.B. im Programm oft ein Zeilenvorschub (neue Zeile) benötigt wird, kann ein Makro? definiert und an entsprechender Stelle benutzt werden. So kann man sich viel Schreibarbeit sparen und muss nicht immer wieder einen langen Befehl, sondern nur noch ein Wort (Name des Makros) eingeben.
So wird ein parameterloses Makro definiert:
#define name_des_makros befehl
Die Definition ist genauso wie bei einer gewöhnlichen Symbolischen Konstante?.
Wenn jetzt ein Makro definiert wurde und der Name im Quellcode vorkommt, ersetzt der Compiler diesen Namen vor der Kompilierung durch den Befehl!
Beispiel-Programm:
makros.cpp
#include <iostream.h>
#define NEUE_ZEILE cout << "\n";
int main()
{
cout <<
"Dieser Text steht in der ersten Zeile.";
NEUE_ZEILE
cout <<
"Dieser Text steht wegen des Makros in der zweiten Zeile.";
}
Erklärungen:
In diesem Beispiel ist ein Makro mit dem Namen NEUE_ZEILE definiert worden.
Dieses Makro enthält den Befehl: cout << "\n";.
Ich habe in vorherigen Teilen dieses Tutorials erklärt, daß cout Text in Anführungszeichen ausgibt. Es gibt aber bestimmte sogenannte Escape-Zeichen die dazu benutzt werden, die Ausgabe des Textes zu steuern oder Sonderzeichen auszugeben. Jedes Escape-Zeichen beginnt mit einem Backslash. Ein mögliches Escape-Zeichen ist \n. Dieses Zeichen wird dazu benutzt, den Cursor in die nächste Zeile springen zu lassen (Neue Zeile). Im nächsten Teil dieses Tutorials werde ich noch andere Escape-Zeichen zeigen.
Wenn jetzt dieses Makro im Quellcode "aufgerufen" wird (NEUE_ZEILE), ersetzt der Compiler dies vor der Kompilierung in cout << "\n";. Dies bewirkt, dass der Cursor? in die nächste Zeile springt und ggf. in dieser Zeile Text ausgibt.
Es wird folgendes von dem Programm ausgegeben:
Dieser Text steht in der ersten Zeile.
Dieser Text steht wegen des Makros in der zweiten Zeile.
Weiterführende Links