【发布时间】:2012-04-05 14:36:39
【问题描述】:
我对编程比较陌生,我正在尝试学习在 C++ 中使用 wxWidgets(使用 Visual Studio 2010)。
我正在查看 wxWidgets 头文件“app.h”,并看到一些我无法理解的 #define 指令。这是一个例子:
#define wxIMPLEMENT_APP(appname) \
wxIMPLEMENT_WX_THEME_SUPPORT \
wxIMPLEMENT_APP_NO_THEMES(appname)"
我习惯于看到#define 带有一个“标识符”和一个“替换”,所以我无法理解这个宏是否有两个“标识符”(wxIMPLEMENT_APP(appname) 和wxIMPLEMENT_WX_THEME_SUPPORT)和一个“替换” (wxIMPLEMENT_APP_NO_THEMES (appname)),或一个“标识符”(wxIMPLEMENT_APP(appname)) 和两个“替换”(wxIMPLEMENT_WX_THEME_SUPPORT 和wxIMPLEMENT_APP_NO_THEMES(appname))。
我如何理解这个宏?
我尝试在网上和教科书中查找,在“宏”、“预处理器指令”、“文本替换宏”、“#define 指令”等类似内容下进行搜索,但我找不到任何解释说明的示例看起来像我这里的那个。
【问题讨论】:
-
建议:尽量保留宏作为最后的手段。
-
使用你的命名法,你的宏有一个标识符和一个替换。标识符为
wxIMPLEMENT_APP(appname),替换为wxIMPLEMENT_WX_THEME_SUPPORT wxIMPLEMENT_APP_NO_THEMES(appname)"。 -
Rob:感谢您阐明标识符和替换的作用。
标签: c++ macros c-preprocessor wxwidgets preprocessor-directive