将参数包从一个函数传递到另一个函数

问题描述 投票:0回答:1

我正在调用函数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 ++语法是什么?

c++ parameters parameter-passing
1个回答
0
投票

您可以按照与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

© www.soinside.com 2019 - 2024. All rights reserved.