如果你熟悉python的话就比较容易理解,
我希望把一个数组作为参数,传给一个接受可变参数的函数。
这个数组是动态生成的,所以在编译时不能确定参数的具体
个数,这个函数也不是printf,printf只是一个最容易理解
的接受可变参数的例子。
我原来希望是传给hiredis里的redisCommand
说简单点,就是通过一个for循环构建一个va_list,比如:
void foo(consth char command[], const char* parms[], size_t n) {
va_list args;
for (int i = 0; i < n; ++i) {
va_push(parms[i]);
va_push(strlen(parms[i]));
}
printf(format_string, args);
redisCommand(command, args);
va_end(args);
}
最终发现,C语言不提供类似va_push这样的命令,
不能在运行时动态构建一个va_list。
不过hiredis里有一个redisCommandArgv可以接受
数组作为命令的参数。也算是解决了需求。
【 在 z16166 的大作中提到: 】
: 你没描述清楚需求
: 原来你的意思是每次从21个中挑选N个(N不固定)出来传给xxx_print
:
--
FROM 210.22.179.*