2016-07-06 34 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;