0

我需要连接两个字符串数组,并需要用该字符串调用函数

我有两个数组

char q[4] = {'t','e','s','t'};
char w[4] = {'f','u','n','c'};

#define dump(a,b)  a ## b

我有一个名为

void testfunc()
{

...
..

}

如果我将宏称为哑(q,w),这只是连接 q 和 w,我需要连接该数组中的字符串。

需要通过使用宏连接字符串数组来调用函数。那可能吗??

4

2 回答 2

4

不,宏不理解 C 结构(例如数组),它们只是执行简单的文本替换。

于 2013-10-03T21:10:15.467 回答
0

我只想调用函数 testfunc() 其名称存储在两个数组 char

尽管在这种情况下您不能使用宏,但您可以拥有一个函数指针数组并选择一个您想在运行时调用的数组。

void (*p[NFUNCS])(void);
//...
p[0] = testfunc; /* store address of the function */
//...
(*p[0])(); // call to testfunc
于 2013-10-03T21:40:34.863 回答