我想在一个变量函数中调用一个变量函数。代码没有出错,但得出的值不正确。正确的做法是什么?
#include <stdarg.h>
void SecondFunction (int count, ...) {
va_list args;
va_start(args, count);
AddValues(count, args);
va_end(args);
};
void AddValues(int count, ...) {
va_list args;
va_start(args, count);
for(int i=count; i--; )
processItem(va_arg(args, void*));
va_end(args);
}
这样做是行不通的,但你可以创建一个类似的函数,用一个 va_list
参数。这正是为什么诸如 vsyslog
和 vprintf
存在。最简单的形式。
void vAddValues(int count, va_list args) {
int i;
for (i = count; i--; )
processItem(va_arg(args, void *));
}