如何将参数从省略号运算符传递到其他函数?

Ash*_*hot 2 c++ printf ellipsis

void myPrintf(const char* format, ...) {
    // some code
    va_list vl;
    printf(format, vl);
}

int main() {
    myPrintf("%d\n", 78);
}
Run Code Online (Sandbox Code Playgroud)

在这段代码中,我试图将参数从省略号传递给printf.它编译但打印垃圾而不是78.这是正确的方法吗?

Abr*_*as2 6

您需要执行以下操作:

void myPrintf(const char *format, ...) {
    va_list vl;
    va_start(vl, format);
    vprintf(format, vl);
    va_end(vl);
}
Run Code Online (Sandbox Code Playgroud)

请注意使用vprintf而不是printf.