可變參數,即參數的個數是動態變化的, 可多可少。
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[1000] ={0}; vsprintf(buffer, pFormat, st) ; va_end(st); }