Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使用宏连接字符串数组_C - Fatal编程技术网

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'
,而您没有包括该字符。是否要使用宏扩展到不同的函数名?也许你可以用函数指针来代替?我只想连接字符数组。你为什么要用宏呢?