Ich bin relativ neu in der Programmierung, und ich versuche zu lernen, wxWidgets in C++ (mit Visual Studio 2010) zu verwenden.#define Direktive mit mehreren Ersetzungen?
Ich schaute durch die wxWidgets Header-Datei "app.h" und ich sehe einige #define
Direktiven, die ich nicht verstehen kann. Hier ein Beispiel:
#define wxIMPLEMENT_APP(appname) \
wxIMPLEMENT_WX_THEME_SUPPORT \
wxIMPLEMENT_APP_NO_THEMES(appname)"
Ich bin es gewohnt, zu sehen #define mit einer „Kennung“ und einem „Ersatz“, so kann ich nicht verstehen, wenn dieser Makro hat zwei „Bezeichner“ (wxIMPLEMENT_APP(appname)
und wxIMPLEMENT_WX_THEME_SUPPORT
) und ein "Ersatz" (wxIMPLEMENT_APP_NO_THEMES (appname)
) oder ein "Identifizierer" (wxIMPLEMENT_APP(appname)
) und zwei "Ersetzungen" (wxIMPLEMENT_WX_THEME_SUPPORT
und wxIMPLEMENT_APP_NO_THEMES(appname)
).
Wie soll ich dieses Makro verstehen?
Ich habe versucht, suchen online und in Text Bücher, die Suche unter „Makros“, „Pre-Prozessor-Richtlinien“, „Ersetzen von Text-Makros“, „# define-Direktive“ und ähnliche, aber ich konnte keine Beispiele mit Erläuterungen finden das sieht aus wie das hier.
Hinweis: Versuchen Sie, Makros als letztes Mittel zu verwenden. – iammilind
Unter Verwendung Ihrer Nomenklatur verfügt Ihr Makro über einen Bezeichner und einen Ersatz. Der Bezeichner ist 'wxIMPLEMENT_APP (appname)', der Ersatz ist 'wxIMPLEMENT_WX_THEME_SUPPORT wxIMPLEMENT_APP_NO_THEMES (appname) ''. –
Rob: danke für die Klärung der Rollen von Bezeichner und Ersatz. –