封装⾃⼰的printf函数#include <stdio.h>
#include <stdarg.h>
//⽅式⼀
#define DBG_PRINT (printf("%s:%u %s:%s:\t", __FILE__, __LINE__, __DATE__, __TIME__), printf)
//⽅式⼆
void MyPrintf(const char *cmd, ...)
{
printf("%s %s ", __DATE__, __TIME__);
va_list args;      //定义⼀个va_list类型的变量,⽤来储存单个参数
va_start(args,cmd); //使args指向可变参数的第⼀个参数
vprintf(cmd,args);  //必须⽤vprintf等带V的
printf函数是如何实现的
va_end(args);      //结束可变参数的获取
printf("\n");
}
int main()
{
MyPrintf("%s", "hello world");
MyPrintf("hello world");
MyPrintf("%d %f", 15, 16.3);
DBG_PRINT("%s", "hello world");
DBG_PRINT("hello world");
DBG_PRINT ("%d %f", 15, 16.3);
return0;
}
参考