Используйте функции va_. Вот пример:
void PrintFloats ( int amount, ...)
{
int i;
double val;
printf ("Floats passed: ");
va_list vl;
va_start(vl,amount);
for (i=0;i<amount;i++)
{
val=va_arg(vl,double);
printf ("\t%.2f",val);
}
va_end(vl);
printf ("\n");
}
Ваши другие аргументы должны указывать, сколько есть других аргументов. printf, например, использует проценты в строке формата, чтобы сделать это. Мой пример использует первый аргумент.
И чтобы вы не подумали, что этот тип аргументации - это колени пчел, обязательно прочитайте Варарги плохие, хорошо .