亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 關(guān)于可變參數(shù)問題...... [打印本頁]

作者: ruchong    時間: 2012-02-01 19:04
標(biāo)題: 關(guān)于可變參數(shù)問題......
別人提供的日志庫只有inc 和Lib
#define DebugMsg(fmt, ...)\
    iLLTraceLog(__FILE__, __LINE__,__MODULENAME__, LL_TRACE, (fmt), __VA_ARGS__)

我所有的日志打印的時候沒有加\n, 這樣看日志非常不方便.....
能在這個宏里面把所有打印的日志后面都加上\n\n嗎?

多謝.....
作者: AD8018    時間: 2012-02-01 19:08
iLLTraceLog(__FILE__, __LINE__,__MODULENAME__, LL_TRACE, (fmt "\n\n"), __VA_ARGS__)
作者: ruchong    時間: 2012-02-01 19:12
回復(fù) 2# AD8018


    這樣實驗過, 不好用.......
作者: ddddddddd    時間: 2012-02-01 19:36
#define DebugMsg(fmt, ...)\
    do{iLLTraceLog(__FILE__, __LINE__,__MODULENAME__, LL_TRACE, (fmt), __VA_ARGS__);printf("\n\n");}while(0)
作者: ruchong    時間: 2012-02-02 09:38
回復(fù) 2# AD8018


   
看錯了, 試過好用多謝.....
作者: 狗氣球    時間: 2012-02-02 14:23
回復(fù) 2# AD8018


    只要他這個fmt都是string literal就行……
    我見過變態(tài)的弄了個char數(shù)組傳進來。
作者: AD8018    時間: 2012-02-02 17:22
本帖最后由 AD8018 于 2012-02-02 17:23 編輯

回復(fù) 6# 狗氣球

這事簡單,AD經(jīng)常把代碼弄得很變態(tài)。。

  1. #define DebugMsg(fmt, ...)                                                                \
  2. do {                                                                                      \
  3.     char buf[1024];                                                                       \
  4.     size_t new_len = strlen(fmt) + 3;                                                     \
  5.     if(new_len <= sizeof(buf))                                                            \
  6.     {                                                                                     \
  7.         char *new_fmt = buf;                                                              \
  8.         sprintf(new_fmt, "%s\n\n", (fmt));                                                \
  9.         iLLTraceLog(__FILE__, __LINE__,__MODULENAME__, LL_TRACE, (new_fmt), __VA_ARGS__); \
  10.     }                                                                                     \
  11.     else                                                                                  \
  12.     {                                                                                     \
  13.         char *new_fmt = (char *)malloc(new_len);                                          \
  14.         sprintf(new_fmt, "%s\n\n", (fmt));                                                \
  15.         iLLTraceLog(__FILE__, __LINE__,__MODULENAME__, LL_TRACE, (new_fmt), __VA_ARGS__); \
  16.         free(new_fmt);                                                                    \
  17.     }                                                                                     \
  18. } while(0)
復(fù)制代碼

作者: 狗氣球    時間: 2012-02-03 14:05
所以說還是別在這個級別封裝了……
作者: cjaizss    時間: 2012-02-03 14:34
ruchong 發(fā)表于 2012-02-02 09:38
回復(fù) 2# AD8018
默認(rèn)為字符串常量才可用,不過一般這里都采用字符串常量





歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2