一個fprintf的簡單封裝實例(vsprintf,va_start(),+va_arg(),+va_end()可變參數列表)
對於不方便進行調試的程序,最好的方法,就是將調試信息寫入文件了。
下麵是一個簡單的實例,僅供參考。
程序代碼:
#include <string.h> #include <stdio.h> #include <stdarg.h> #ifndef DEBUG #define DEBUG #endif int LOG2F(const char *format,...) { int ret = 0; #ifdef DEBUG FILE* fp = NULL; fp=fopen("log.txt","a+"); if(fp != NULL) { va_list args; va_start(args,format); vfprintf(fp,format,args); va_end(args); fflush(fp); } else { ret = 1; } if(fp != NULL) { fclose(fp); fp = NULL; } #endif return ret; } int main() { char *str = "It is a Log test program!"; int ix = 10; float fx = 2.0; LOG2F("%s %d %f\n",str,ix,fx); return 0; }
輸出:
It is a Log test program! 10 2.000000
最後更新:2017-04-02 06:51:59
上一篇:
Android手機屏幕錄像方法
下一篇:
在Android中通過jni方式使用編譯好的FFmpeg庫-Android中使用FFmpeg媒體庫(二)
解壓“加密”壓縮包辦法
C++編程規範之37:公用繼承即可替換性。繼承,不是為了重用,而是為了被重用
創新釋放雲計算潛能 科技賦能互聯網經濟 思科助力阿裏巴巴打造新一代數據中心典範
2017數據科學職位報告:R超過SAS,但仍不如Python
Dev gridcontrol獲取選定行,指定列單元格的內容
Kafka詳解五、Kafka Consumer的底層API- SimpleConsumer
監管收緊,互聯網還能顛覆線下嗎?
關於新增阿裏雲等3家單位具備CNVD技術組成員單位資格的公告
Java IO--壓縮流ZipOutputStream/ZipInputStream
zoj 長沙 Bizarre Routine 模擬