以下是使用不定參數另外定義一個function,讓我們可以在print時可為console畫面加上顏色。
#define DBG_RED "\033[22;31m"
#define DBG_GREEN "\033[35;32m"
#define DBG_BLUE "\033[22;34m"
#define DBG_MAGENTA "\033[22;35m"
#define DBG_WHITE "\033[01;37m"
#define DBG_YELLOW "\033[01;33m"
#define DBG_LRED "\033[01;31m" 
#define DBG_LGREEN "\033[01;32m"
#define DBG_LBLUE "\033[01;34m"
void mydebug(const char *color,const char *format, ...);//__attribute__((format(printf,2,3)));
#define DBG(color, fmt, arg...)  mydebug(color, fmt, ## arg)
void mydebug(const char *color,const char *format, ...)
{
 static char text[512];
 va_list ap; 
 
 va_start(ap, format);
 vsnprintf((char *)text,512,format, ap);
 va_end(ap);
 if (text[strlen(text) - 1] == '\n')
 {
  text[strlen(text) - 1] = 0;
  printf("%s%s\033[0m\n",color,text);
 }
 else
  printf("%s%s\033[0m",color,text);
}
USAGE:
DBG(DBG_RED, "Himiro Test:%s\n", "Hello world");
沒有留言:
張貼留言