Первый аргумент используется для указания количества элементов, а затем вы можете передать в функцию любое количество элементов.
Вот типичный вызов:
int i = add(5, 20, 30, 40, 50, 60);
Сумма состоит из 5 чисел, поэтому первый параметр - 5 .Тогда остальные 5 чисел, которые нужно сложить.
Функция будет тогда:
int add(int argc, ...)
{
int result = 0;
va_list ptr;
va_start(ptr, argc);
for (int i = 0; i < argc; i++)
{
result += va_arg(ptr, int);
}
return result;
}
Ссылки:
va_arg()
va_start ()
va_list ()