变参函数的应用得比较少.
输出log信息功能的函数演常会用到变参函数.
什么是变参函数? 比如 printf("个数:%d, 总数:%d", a, b); printf就是变参函数, 因为其参数的个数不是固定的.
变参函数一般用到下列宏:
va_arg | Retrieve argument from list |
va_end | Reset pointer |
va_start | Set pointer to beginning of argument list |
下面给出一个列子:
void WriteLog(LPCTSTR lpszArgument, ...)
{
TCHAR szBuf[4000] = {0x00};
va_list argList;
va_start(argList);
int iLen = _vstprintf(buf, lpszArgument, argList);
va_end(argList);
CString str(buf, iLen);
/// 之后写到文件,或TRACE出来.
TRACE(buf);
}