C 使用宏连接字符串数组
我需要连接两个字符串数组,并需要使用该字符串调用函数 我有两个数组C 使用宏连接字符串数组,c,C,我需要连接两个字符串数组,并需要使用该字符串调用函数 我有两个数组 char q[4] = {'t','e','s','t'}; char w[4] = {'f','u','n','c'}; #define dump(a,b) a ## b 我有一个函数叫做 void testfunc() { ... .. } 如果我把宏称为哑巴 dumb(q,w)这只是连接q和w,我需要连接该数组中的字符串 需要通过使用宏连接字符串数组来调用函数。 这可能吗?否。宏不理解C结构(如数组),它们只执
char q[4] = {'t','e','s','t'};
char w[4] = {'f','u','n','c'};
#define dump(a,b) a ## b
我有一个函数叫做
void testfunc()
{
...
..
}
如果我把宏称为哑巴
dumb(q,w)这只是连接q和w,我需要连接该数组中的字符串
需要通过使用宏连接字符串数组来调用函数。
这可能吗?否。宏不理解C结构(如数组),它们只执行简单的文本替换。否。宏不理解C结构(如数组),它们只执行简单的文本替换 我只想调用函数testfunc(),该函数的名称存储在 双数组字符 虽然在这种情况下不能使用宏,但可以为函数指针创建一个数组,并选择一个要在运行时调用的数组
void (*p[NFUNCS])(void);
//...
p[0] = testfunc; /* store address of the function */
//...
(*p[0])(); // call to testfunc
我只想调用函数testfunc(),该函数的名称存储在
双数组字符
虽然在这种情况下不能使用宏,但可以为函数指针创建一个数组,并选择一个要在运行时调用的数组
void (*p[NFUNCS])(void);
//...
p[0] = testfunc; /* store address of the function */
//...
(*p[0])(); // call to testfunc
testfunc
似乎不接受任何参数?!那些不是弦。字符串(在C中)以NULL结尾,这意味着最后一个字符将是'\0'
,而您没有包括该字符。是否要使用宏扩展到不同的函数名?也许你可以用函数指针代替?我只想连接字符数组。为什么要使用宏?testfunc
似乎不接受任何参数?!那些不是弦。字符串(在C中)以NULL结尾,这意味着最后一个字符将是'\0'
,而您没有包括该字符。是否要使用宏扩展到不同的函数名?也许你可以用函数指针来代替?我只想连接字符数组。你为什么要用宏呢?