语法:
#include <cstdarg> #include <cstdio> int vprintf( char *format, va_list arg_ptr ); int vfprintf( FILE *stream, const char *format, va_list arg_ptr ); int vsprintf( char *buffer, char *format, va_list arg_ptr );
这些函数和 printf(), fprintf() 和 sprintf() 非常像。不同之处在于参数列表是一个指向参数链表的指针。 va_list 定义在 cstdarg, 它同样被 va_arg 用到。例如:
void error( char *fmt, ... ) { va_list args; va_start( args, fmt ); fprintf( stderr, "Error: " ); vfprintf( stderr, fmt, args ); fprintf( stderr, "\n" ); va_end( args ); exit( 1 ); }