c中除錯,肯定要有輸出。而自帶的輸出總是不夠方便:
開啟時輸出太多。
不知道是**輸出的。
這個時候,需要自定義巨集。自定義巨集最麻煩的問題,怎麼自帶引數呢?吾有專用範例介紹給大家:
(__function__如果沒有,可以使用__func__)
//不同平台輸出,只要改一句即可。也可以通過ifdefine處理。
#define wx_log_print wx_print
//為了簡單化。
//有時間戳功能輸出。
#define wx_log_head char timetext[64]; timestamptext(timetext); wx_log_print("%s:%s(%4d)"
#define wx_log_tail "\n", timetext, __function__, __line__
#define wx_log_newline()
#define wx_log_here()
#define wx_log_info(fmt, ...)
#define wx_log_text(text)
#define wx_log_int(int)
//channel有多個,想知道是那個輸出的,所以增加乙個巨集,channel->tag_name。語法如下:
#define wx_log_channel(fmt, channel, ...) log_info("%s " fmt, channel->tag_name, ##__va_args__)
print是可以輸出日誌的函式,不同平台更換。
帶有時間錯、函式名、行號,在開發階段特別方便。
相信能給需要的朋友帶來便利。
mysql巨集引數 C語言帶引數的巨集定義
c語言允許巨集帶有引數。在巨集定義中的引數稱為 形式引數 在巨集呼叫中的引數稱為 實際引數 這點和函式有些類似。對帶引數的巨集,在展開過程中不僅要進行字串替換,還要用實參去替換形參。帶參巨集定義的一般形式為 define 巨集名 形參列表 字串 在字串中可以含有各個形參。帶參巨集呼叫的一般形式為 巨...
帶引數的巨集定義
不是進行簡單的字串替換,還要進行引數替換。其定義的一般形式為 define 巨集名 參數列 字串 字串中包含在括弧中所指定的引數。如 define s a,b a b area s 3,2 定義矩形面積s,a 和 b 是邊長。在程式中用了s 3,2 把3 2分別代替巨集定義中的形式引數a b,即用 ...
巨集定義及帶引數的巨集定義
include 巨集定義,通常用於定義常量,在 轉換成二進位制檔案時會將 中的巨集名稱替換成值 define 巨集名稱 值 define a 1 帶引數的巨集 fun a,b 為巨集的名稱 a b為巨集的值 帶引數的巨集比函式效率高 define fun a,b a b 為了保證替換結果,最好加入 ...