假设我想做这样的事情

void my_printf(char *fmt,...) {
 char buf[big enough];
 sprintf(buf,fmt,...);
}

将可变数量的参数直接传递给具有接受可变参数的函数的正确方法是什么?

最佳答案

sprintf具有称为va_listvsprintf形式。将您在本地构造的va_list作为最后一个参数传递给它。

void my_printf(char *fmt,...) {
 va_list ap;
 va_start(ap, fmt);

 char buf[big enough];
 vsprintf(buf,fmt,ap);

 va_end(ap);
}

关于c - C,处理可变参数函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2421062/

10-13 08:26