#define var in another #define in C

时间:2019-04-02 11:26:14

标签: c++ c

我将#define宏与另一个#define中的变量一起使用,但是##不起作用! 请帮忙!

#define _var 0b1010
#define JOIN(var1, var2) var1 ## var2

int main()
{   
    int num1 = JOIN(0b1010, 1010); // <== This works!
    int num2 = JOIN(_var, 1010); // <== This does not work!
    return 0;
}

1 个答案:

答案 0 :(得分:3)

##不会在其操作数中扩展宏。您需要将JOIN包装到另一个宏中才能解决此问题:

#define JOIN(var1, var2) JOIN_(var1, var2)
#define JOIN_(var1, var2) var1##var2