变长参数

来源:互联网 发布:sja1000数据手册 编辑:程序博客网 时间:2024/05/01 13:06
#include <stdarg.h>
#include <stdio.h>
int PrintLog(FILE* pfile, const char * pformat, ...)
{
   va_list _va_list;
   char szBuf[1024];
      if (pformat == NULL || pfile == NULL) return -1;       /* 判断指针是否正确*/
   va_start(_va_list, pformat);                   /* 初始化变长参数列表 */
   vsprintf(szBuf, pformat, _va_list);            /* 传递变长参数 */
   va_end(_va_list);                              /* 结束使用变长参数列表 */
   fputs(szBuf, pfile);                           /* 输出到文件流 */
   return 0;
}
void main()
{
   PrintLog(stderr, "[%s][%s][%d][%c]\n", "This", "Is", 5, 'a');
   PrintLog(stderr, "Error[%p][%.2f][%X]\n", NULL, 3.123, 100);
}