C:将可变数量的参数从一个函数传递到另一个函数

Ian*_*aum 15 c variables function parameter-passing

所以,这是我现在面临的一个小问题 - >我正在尝试编写一个接受char*消息和可变数量参数的函数.我的函数会稍微修改一下这个消息,然后它会用消息和给定的参数调用printf.实际上,我正在尝试写这样的东西:

void modifyAndPrintMessage(char* message,...){
    char* newMessage; //copy message.
    //Here I'm modifying the newMessage to be printed,and then I'd like to print it. 
    //passed args won't be changed in any way.

    printf(newMessage,...); //Of course, this won't work. Any ideas?
    fflush(stdout);

}
Run Code Online (Sandbox Code Playgroud)

所以,任何人都知道我该怎么做才能实现它?我非常感谢任何帮助:)

K S*_*iel 17

你想使用varargs ......

void modifyAndPrintMessage( char* message, ... )
{
    // do somehthing custom

    va_list args;
    va_start( args, message );

    vprintf( newMessage, args );

    va_end( args );
}
Run Code Online (Sandbox Code Playgroud)


msa*_*sam 0

使用varargs接受可变数量的参数,然后使用sprintf创建新消息