如題所示,最近看到C語言裡面的一個宏定義:
#define QMI_SVC_HDLR(cmdval, hdlr) {cmdval, #hdlr, hdlr}
實在是看不懂是什麼意思,特別是#hdlr,這個是啥意思啊,求大神指導
fine宏定義中的# (stringizing)字符串化操作符。其作用是:將宏定義中的傳入參數名轉換成用一對雙引號括起來參數名字符串。其只能用於有傳入參數的宏定義中,且必須置於宏定義體中的參數名前。
這個宏定義的意思是,代碼中遇到 QMI_SVC_HDLR(5, 6) 的地方,就轉換成代碼 {5,"6",6}