C++ Передача списка va_list в функцию

237
29 июня 2018, 05:00

Подскажите, как реализовать функцию:

int test(...){ printf(...);}

То есть передать параметры va_list в следующую функцию.

Answer 1

Просто так передать неопределённый список аргументов невозможно, в языке нет синтаксиса для этого. Однако проблему можно обойти, как указано здесь: функция, которой вы передаёте управление, должна иметь вариант, принимающий va_list.

Для вашего случая, вы можете использовать vprintf:

void test(char *format, ...) // должен быть хотя бы один аргумент
{
    va_list args;
    va_start(args, format);
    vprintf(format, args);
    va_end(args);
}
Answer 2

Или макросом:

 #define prn(A,...) printf(A,__VA_ARGS__)

иногда так проще, особенно если надо добавить к VA_ARGS дополнительные аргументы.Но по уму все же по изучать VA_* интерфейс.

READ ALSO
Холивар по поводу реализации. С++ и Qt

Холивар по поводу реализации. С++ и Qt

Есть объект A который владеет объектом B (объявляется и инициализируется в конструкторе объекта A и является членом объекта A)

243
Перезапуск цикла через n секунду

Перезапуск цикла через n секунду

Есть приложение, реализующее обработку изменяющегося файлаНа форме есть кнопки "Старт" и "Стоп" меняющие значение переменной active

249
буфер обмена с++

буфер обмена с++

Есть вот такой код:

238