#定义具有多个替换项的指令

#define directive with multiple replacements?

本文关键字:替换 指令 定义      更新时间:2023-10-16

我对编程还比较陌生,我正在努力学习在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指令"等下搜索,但我找不到任何与我这里的解释类似的示例。

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

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