2016-07-06 79 views
0

宏:变量名中间的宏参数?

#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呢?

我尝试在名称前使用标签(#),但没有做到我想要的。有空格不是一种选择,因为它是中间变量名称。

回答

3

尝试连接符(##):

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