单纯的写日志,没必要使用可变参数,但是不利于封装,代码难看,今天研究了一下可变参数
先查看手册:http://www.cplusplus.com/reference/cstdio/vsprintf/?kw=vsprintf
function
<cstdio>
vsprintf
int vsprintf (char * s, const char * format, va_list arg );
Write formatted data from variable argument list to string
Composes a string with the same text that would be printed if
format was used on
printf, but using the elements in the variable argument list identified by
arg instead of additional function arguments and storing the resulting content as a
C string in the buffer pointed by
s.
Internally, the function retrieves arguments from the list identified by arg as if va_arg was used on it, and thus the state of arg is likely to be altered by the call.
In any case, arg should have been initialized by va_start at some point before the call, and it is expected to be released by va_end at some point after the call.
Parameters
-
s
-
Pointer to a buffer where the resulting C-string is stored.
The buffer should be large enough to contain the resulting string. format
- C string that contains a format string that follows the same specifications as format in printf (see printf for details). arg
-
A value identifying a variable arguments list initialized with
va_start.
va_list is a special type defined in