我对编程比较陌生,我正在尝试学习在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指令”等搜索,但我找不到任何解释的例子看起来就像我在这里的那个。
答案 0 :(得分:3)
此预处理器宏具有跨多行的单个替换拆分。该行末尾的\
允许您在多行文本上写一条“逻辑”行。
当wxIMPLEMENT_APP(appname)
模式匹配时,wxIMPLEMENT_APP(appname)
后面的所有内容都会放在程序的文本中;据推测,这两个定义都将由预处理器进一步处理,因为它们看起来像是对其他宏定义的引用。