不是直接的,但是,在标准库中,变量函数以成对的形式出现在标准库中是很常见的(在标准库中,这几乎是普遍的情况)。varargs风格替代功能。G.printf/vprintf
那个V.。函数采用va_list参数,其实现通常使用编译器特定的“宏魔术”,但您可以保证调用v.像这样的变量函数的样式函数可以工作:#include int m_printf(char *fmt, ...){
int ret;
/* Declare a va_list type variable */
va_list myargs;
/* Initialise the va_list variable with the ... after fmt */
va_start(myargs, fmt);
/* Forward the '...' to vprintf */
ret = vprintf(fmt, myargs);
/* Clean up the va_list */
va_end(myargs);
return ret;}
这应该会给你想要的效果。
如果考虑编写各种库函数,还应该考虑将va_List样式的伙伴作为库的一部分。正如您可以从您的问题中看到的,它可以证明对您的用户是有用的。