Scitools Понимает , действительно имеет возможность генерировать много метрик кода для Вас. У меня нет большого опыта с метрическими функциями кода, но функции статического анализа в целом были хороши, и цена была очень разумна. Поддержка была превосходна.
Вам нужна отдельная версия, которая работает с явными списками аргументов:
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 ()
.
Чтобы добавить в ответ "раскрутка":
На странице руководства va_start (3) есть достойное объяснение, как работать с объектами va_list, включая хороший пример.
Также страница printf (3) содержит еще лучший пример инфраструктуры вызовов на основе va_list вокруг vsnprintf (3) (вы можете перейти на эту страницу, используя любой из вариантов имени printf ()).