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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句