Как может один переменный-args вызов функции другой? [дубликат]

Scitools Понимает , действительно имеет возможность генерировать много метрик кода для Вас. У меня нет большого опыта с метрическими функциями кода, но функции статического анализа в целом были хороши, и цена была очень разумна. Поддержка была превосходна.

6
задан Community 23 May 2017 в 12:06
поделиться

2 ответа

Вам нужна отдельная версия, которая работает с явными списками аргументов:

void vfunc(int x, va_list args)
{
  /* do stuff */
}

void func2(int x, ...)
{
  va_list arg;

  va_start(arg, x);
  vfunc(x, arg);
  va_end(arg);
}

По этой причине существуют стандартные функции, такие как vprintf () .

8
ответ дан 16 December 2019 в 21:41
поделиться

Чтобы добавить в ответ "раскрутка":

На странице руководства va_start (3) есть достойное объяснение, как работать с объектами va_list, включая хороший пример.

Также страница printf (3) содержит еще лучший пример инфраструктуры вызовов на основе va_list вокруг vsnprintf (3) (вы можете перейти на эту страницу, используя любой из вариантов имени printf ()).

0
ответ дан 16 December 2019 в 21:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: