Debug格式化輸出 基於C語言

2022-05-21 17:30:10 字數 1381 閱讀 1331

舉例:

#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 ...