1. 程式人生 > >變參標準函式的重新封裝,如printf

變參標準函式的重新封裝,如printf

寫一個函式封裝printf用作trace 方法一:
#include <stdio.h>
#include <stdarg.h>
void my_trace(const char *cmd, ...)
{
    printf("%s %s ", __DATE__, __TIME__);
    va_list args;       //定義一個va_list型別的變數,用來儲存單個引數
    va_start(args,cmd); //使args指向可變引數的第一個引數
    vprintf(cmd,args);  //必須用vprintf等帶V的
    va_end(args);       //結束可變引數的獲取
}
方法二:
#define DBG_PRINT (printf("%s:%u %s:%s:\t", __FILE__, __LINE__, __DATE__, __TIME__), printf)