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.这是正确的方法吗?
您需要执行以下操作:
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.