#define ? - Textersetzung ?
-
Hallo,
ich versteh noch nicht ganz den Sinn von
#define
... Ich les zwar überall in Tutorials und Büchern das
#define
eine Textersetzung durchführt, aber was genau ist das ? und warum nehmen manche Programmierer
#define
wenn sie einen konstanten Wert erzeugen wollen und nicht einfach
const
?
Ich bin in Programmierung und C++ ziemlich neu und unsicher, deshalb wäre ich um eine genau Erklärung dieser Präprozessor-Direktive sehr dankbar
mfg
Anfänger!
-
Anfänger! schrieb:
Hallo,
ich versteh noch nicht ganz den Sinn von
#define
... Ich les zwar überall in Tutorials und Büchern das
#define
eine Textersetzung durchführt, aber was genau ist das ? und warum nehmen manche Programmierer
#define
wenn sie einen konstanten Wert erzeugen wollen und nicht einfach
const
?
Ich bin in Programmierung und C++ ziemlich neu und unsicher, deshalb wäre ich um eine genau Erklärung dieser Präprozessor-Direktive sehr dankbar
mfg
Anfänger!Was eine Textersetzung ist?
Öffne eine beliebige Textdatei im Notepad, dann Bearbeiten->Ersetzten.
Da kanst ausprobieren, was das macht, das gleiche passiert beim #defineWarum #define statt const oder auch enum kann ich dir auch nicht sagen,
hab ich mich auch schon oft gefragt.sonstiger Sinn:
z. B. bedingte Compilierung:#ifdef FOO doSomething(); #else doSomethingElse(); #endif
falls vorher "#define FOO" wird "doSomething()" aufgerufen,
ansonsten doSomethingElse(). Damit lässt sich beispielsweise
plattformunabhängig programmieren.
Unter Linux wird FOO definiert, unter Windows nicht.doSomething
-
Hallo,
wenn man im Notepad "ersetzen" wir die Datei durch eine andere ersetzt(Ist ja eigtl klar), aber wie funktioniert das jetzt mit #define ? Wird z.B. wenn man folgendes schreibt Test durch 34 ersetzt ??
#define Test 34
mfg
-
Ja.
#define BEGIN { #define END } int main () BEGIN // hier wird BEGIN durch { ersetzt ... END // hier wird END durch } ersetzt