在做 http模組 reload 功能時有個遍歷 static_location 三叉樹的需求,寫完想著檢驗一下遍歷的是否正確,於是就輸出了一些列印日誌,但是發現日誌中有很多亂碼,gdb 除錯slen = va_arg(args, size_t);
獲取的字串長度為236223201284
,和我傳進去的node->len
完全對不上,後來發現node->len
成員的型別竟然是 u_char,和size_t 沒有匹配上。好隱蔽的錯誤, 為了不修改結構體,就老老實實用 「%v」 了.
/* 遞迴遍歷三叉樹 */
/* 修改前的** */
/* 修改後的** */
/* buf 預設大小為2048,拷貝進去很多無效字元 */
388 buf = ngx_cpymem(buf, p, len);
格式化輸出
a 浮點數 十六進製制數字和p 記數法 a 浮點數 十六進製制數字和p 記法 c 乙個字元 char c 乙個iso寬字元 d 有符號十進位制整數 int ld ld 長整型資料 long hd 輸出短整形。e 浮點數 e 記數法 e 浮點數 記數法 f 單精度浮點數 預設float 十進位制記數法...
格式化輸出
a 浮點數 十六進製制數字和p 記數法 a 浮點數 十六進製制數字和p 記法 c 乙個字元 char c 乙個iso寬字元 d 有符號十進位制整數 int ld ld 長整型資料 long hd 輸出短整形。e 浮點數 e 記數法 e 浮點數 記數法 f 單精度浮點數 預設float 十進位制記數法...
格式化輸出
簡單輸出 print 你好小明 print 你好小紅 print 你好小李 帶變數的輸出 更有靈活性,易於維護 name 小李 print name 加號拼接字串 pay 8 print 花費一共 pay 元 print裡用逗號列印多個變數 name 小明 score 90 print name,s...