1

我的对话框上的控件约定是:

 #define DLG_NAME              1
 #define DLG_NAME_CONTROL_NAME 2  

我想构建一个知道控件名称的函数,并且必须获取定义的值。
很明显,我不会写int i = DLG_NAME + _ + CONTROL_NAME

那么如何混合第一个#define和另一个文本来获得第二个#define值呢?

4

1 回答 1

3

我想,你正在寻找的是:

#define DLG_NAME_FIRST_COMBO 2    
#define CONTROL_NAME(x) DLG_NAME_##x

int i = CONTROL_NAME(FIRST_COMBO);

您在评论中建议的方式不起作用,因为宏表达式不会在定义之外重新评估。

于 2013-05-30T09:09:20.257 回答