2

我对编程比较陌生,我正在尝试学习在 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_SUPPORTwxIMPLEMENT_APP_NO_THEMES(appname))。

我如何理解这个宏?

我尝试在网上和教科书中查找,在“宏”、“预处理器指令”、“文本替换宏”、“#define 指令”等类似内容下进行搜索,但我找不到任何带有解释的示例,看起来像我这里有一个。

4

1 回答 1

3

预处理器宏具有跨多行的单个替换拆分。行\尾的 允许您在多行文本上写一个“逻辑”行。

当模式匹配时,后面的所有内容wxIMPLEMENT_APP(appname)都将放在程序的文本中;据推测,这两个定义都将由预处理器进一步处理,因为它们看起来像对其他宏定义的引用。wxIMPLEMENT_APP(appname)

于 2012-04-05T14:42:28.673 回答