变量名中间的宏参数?

时间:2016-07-06 06:44:44

标签: c c-preprocessor

宏:

#define TESTMACRO(name, exc) void* jt_name[exc];int jtix_name = 0;

示例:

TESTMACRO(testname, 2)

转换为

void* jt_name[2];int jtix_name = 0;

我怎么能让它说jt_testname?

我尝试在名字之前使用#标签,但这并没有按照我的意愿行事。拥有空格不是一个选项,因为它是变量中间名。

1 个答案:

答案 0 :(得分:3)

尝试连接运算符(##):

#define TESTMACRO(name, exc) void* jt_ ## name[exc];int jtix_ ## name = 0;