可变参数,即参数的个数是动态变化的, 可多可少。
1. 可变参数;
可变参数一般采用”..."表示,用在宏上表示变参宏, 如:
#define WriteLine(format,...) prifntf(format, __VA_ARGS__)
从上可以看出, 宏中"..."可以使用__VA_ARGS__来表示;
2. va_list实现函数可变参(配合vsprintf);
在函数也可以实现可变参数, 在函数内可以使用va_list, va_start, va_arg, va_end, 配合vsprintf。
例如:
void test(const char *pFromat, ...)
{
va_list st;
va_start(st,pFormat);
char buffer[] ={};
vsprintf(buffer, pFormat, st) ;
va_end(st);
}