我的对话框控件的约定是:
#define DLG_NAME 1
#define DLG_NAME_CONTROL_NAME 2
我想构建一个知道控件名称的函数,并且必须得到定义的值
很明显,我不能写int i = DLG_NAME + _ + CONTROL_NAME
。
那么如何将第一个#define
和另一个文字混合以获得第二个#define
值?
答案 0 :(得分:3)
我想,你在寻找的是:
#define DLG_NAME_FIRST_COMBO 2
#define CONTROL_NAME(x) DLG_NAME_##x
int i = CONTROL_NAME(FIRST_COMBO);
您在评论中建议的方式不起作用,因为宏表达式不会在定义之外重新评估。