舉例:
#include #define echo_color_none "\033[0;0m"
#define echo_color_green "\033[0;32m"
#define debug(fmt, args...) \
printf(echo_color_green"debug: " fmt "(file: %s, func: %s, line: %d)\n"echo_color_none, ##args, __file__, __func__, __line__);
// 測試程式
int main(void)
在實現過程中要用到幾個關鍵巨集:
#include va_list argp;
va_start(argp, fmt);
va_end(argp);
要用到vsnprintf()函式
vsnprintf()
標頭檔案:#include 函式原型:int vsnprintf(char *str, size_t size, const char *format, va_list ap);
函式說明:將可變引數格式化輸出到乙個字元陣列
舉例:
#include #include #define echo_color_none "\033[0;0m"
#define echo_color_green "\033[0;32m"
#define debug_print(message, ...) debug_msg(message, __file__, __func__, __line__, ##__va_args__)
void debug_type(char *fmt, char *file, const char *func, int line, va_list argp);
vsnprintf(buffer, sizeof(buffer), fmt, argp);
printf(echo_color_green"debug: %s(file: %s, func: %s, line: %d)\n"echo_color_none, buffer, file, func, line);
}void debug_msg(char *fmt, char *file, const char *func, int line, ...)
// 測試程式
int main(void)
通過以上兩種方法就可以實現用debug輸出含有位置資訊的除錯資訊。 C語言格式化輸出
1.格式控制符形式 o 格式控制符 其中,中括號裡的內容是可選的,裡的內容是必須的。以下對各個標誌的含義簡要介紹 表示格式控制的起始符號,必不可少。格式控制起始位置 表示對齊標誌,表示右對齊,表示左對其,預設情況下為右對齊。對齊標誌 o 表示當實際長度沒有格式控制的長度大時,用 o 補全。補全內容 ...
C語言格式化輸出
d整型輸出,d長整型輸出 o以八進位制數形式輸出整數 x以十六進製制數形式輸出整數,或輸出字串的位址 u以十進位制數輸出unsigned型資料 無符號數 c用來輸出乙個字元 挨個輸出陣列中的元素 s用來輸出乙個字串 一次輸出整個陣列的元素 f用來輸出實數,以小數形式輸出,預設情況下保留小數點6位 e...
C語言 格式化輸出 m n
格式字元 格式字元用以指定輸出項的資料型別和輸出格式。d格式 用來輸出十進位制整數 int 有以下幾種用法 d 按整型資料的實際長度輸出。m.nd m為指定的輸出欄位的寬度,n定義為實際輸出的個數。m 0時為右對齊,根據n的大小,不足在左邊補0 m 0時和m 0好像沒有區別 如果省略m或者n,則m ...