我的对话框中控件的约定是:
#define DLG_NAME 1
#define DLG_NAME_CONTROL_NAME 2
我想构建一个知道控件名称的函数,并且必须获取定义的值。
很明显,我不能写 int i = DLG_NAME + _ + CONTROL_NAME
。
那么我如何混合第一个 #define
和另一个文本来获得第二个 #define
值?
最佳答案
我想,您正在寻找的是:
#define DLG_NAME_FIRST_COMBO 2
#define CONTROL_NAME(x) DLG_NAME_##x
int i = CONTROL_NAME(FIRST_COMBO);
您在评论中建议的方式不起作用,因为宏表达式不会在定义之外重新求值。
关于c++ - 将两个#define 混合成一个词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16831034/