我正在调用函数firstFunction
并向其传递参数包(const char* fmt, ...)
:我想在这里执行一些计算,然后将参数包传递给另一个函数secondFunction
,该函数以(const char* fmt, ...)
作为输入参数。
void firstFunction(const char* fmt, ...)
{
//does some pre-condition stuff
//calls secondFunction (how?)
}
void secondFunction(const char* fmt, ...)
{
//prints the input parameters in a va_list using vsnprtinf
}
将参数包从一个函数传递给另一个函数的C ++语法是什么?
您可以按照与vprintf
系列相同的方式进行操作,将va_args
传递给您的函数:
#include <stdarg.h>
#include <stdio.h>
void secondFunction(const char* fmt, va_list args)
{
vprintf(fmt, args);
}
void firstFunction(const char* fmt, ...)
{
va_list args;
va_start(args, fmt);
secondFunction(fmt, args);
va_end(args);
}
int main()
{
firstFunction("%d %d %d", 1, 2, 3);
}
打印1, 2, 3