#定义具有多个替换项的指令
#define directive with multiple replacements?
我对编程还比较陌生,我正在努力学习在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_APP(appname)
之后的所有内容都将被放置在程序的文本中;据推测,这两个定义都将由预处理器进行进一步处理,因为它们看起来像是对其他宏定义的引用。
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 模板参数替换失败,并且未完成隐式转换
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 如何用转义符替换字符串中的所有特殊字符
- C++:对不存在的命名空间使用命名空间指令
- 为什么除非添加括号,否则构造函数上的模板替换会失败?
- 函数名是c中该函数的第一条指令的地址吗
- 在一个读写器队列中,我可以用volatile替换原子吗
- 用符号版本替换对函数的所有调用
- 如何通过替换顺序代码的while循环来添加OpenMP for循环
- 替换基于地图的所有引用
- 错误:无效的预处理指令 #i 的意思是 #if?
- 按平均值替换数组中的元素
- 组装指令中乘法的下部和上部是什么
- 如何将指令替换为值
- 是否有一种方法可以将变量列表传递给#Define指令,并导致其通过文字值替换字符串值
- 为什么没有替换预处理器指令
- #定义具有多个替换项的指令
- 替换LLVM IR中的指令
- 在llvm中用Undef值替换所有要删除的指令