У меня есть функция, которая принимает переменное количество аргументов. Из этой функции я хочу вызывать функции, которые принимают фиксированное количество аргументов,
void log(int level, const char* format, ...)
{
va_list args;
va_start(args, fmt);
int count = 0;
void *navigator[10] = NULL;
while ((navigator[count] = va_arg(args, char*) ) != NULL && count < 10)
++count; //Is this the right way to count no. of arguments passed ?
fprintf(stderr, "**** No of arguments : %d\n", count);
fflush(stderr);
switch (count - 2)
{
case 0:
log_l(level, fmt);
break;
case 1:
log_l1(level, fmt, navigator[0]); // how would I get arg1 here,
// I get NULL in the called function)*/
break;
.
.
.
.
.
};
}
Я хочу знать правильный способ подсчета количества переданных параметров, а затем правильно передать их другим функциям с фиксированными параметрами.