不定参数的两种实现方式
- 通过宏
__VA_ARGS__
实现 - 通过
va_list
在函数中实现
通过宏__VA_ARGS__
实现
#define DebugPrint(format, ...) fprintf(stdout, "[%s][%d] " format, __FILE__, __LIN__, ##__VA_ARGS__)
通过va_list
在函数中实现
int DebugPrint(const char *format, ...)
{
va_list args;
va_start(args, format);
fprintf(stdout, "[%s][%d] ", __FILE__, __LINE__);
vfprintf(stdout, format, args);
va_end(args);
fflush(fp_runlog);
}
注:调用方法与printf相同
参考
[1] C语言 ## VA_ARGS 宏
[2] C语言不定参数的两种实现
[3] va_list原理及用法