<分区>
void myPrintf(const char* format, ...) {
// some code
va_list vl;
printf(format, vl);
}
int main() {
myPrintf("%d\n", 78);
}
在这段代码中,我尝试将参数从省略号传递给 printf
。它编译但打印垃圾而不是 78。正确的方法是什么?
<分区>
void myPrintf(const char* format, ...) {
// some code
va_list vl;
printf(format, vl);
}
int main() {
myPrintf("%d\n", 78);
}
在这段代码中,我尝试将参数从省略号传递给 printf
。它编译但打印垃圾而不是 78。正确的方法是什么?
最佳答案
您需要执行以下操作:
void myPrintf(const char *format, ...) {
va_list vl;
va_start(vl, format);
vprintf(format, vl);
va_end(vl);
}
请注意使用 vprintf
而不是 printf
。
关于c++ - 如何将从省略号运算符获得的参数传递给其他函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18715895/