定義帶引數的C巨集,方便輸出除錯資訊

2021-08-20 00:18:27 字數 966 閱讀 3882

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 為了保證替換結果,最好加入 ...