printf字体
#define DP1(format, arg...) printf("\x1b[0;31m"format"\x1b[0m", ##arg)
#define DP(format, arg...) \
do { \
char debuf[2 * 1024]; \
snprintf(debuf, 2 * 1024, \
"\x1b[0;31m"format"\x1b[0m", \
##arg); \
printf("%s", debuf); \
} while (0);
#与##
一个#表示字符串化;两个#代表concatenate
41是字背景颜色, 32是字体的颜色, 字体背景是红色,字是绿色是字符串. 后面的\033[0m是控制码.
颜色代码:
QUOTE:
字背景颜色范围: 40--49 字颜色: 30--39
40: 黑 30: 黑
41: 红 31: 红
42: 绿 32: 绿
43: 黄 33: 黄
44: 蓝 34: 蓝
45: 紫 35: 紫
46: 深绿 36: 深绿
47: 白色 37: 白色
ANSI控制码:
QUOTE:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\03[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m -- \033[37m 设置前景色
\033[40m -- \033[47m 设置背景色
\033[nA 光标上移n行
\03[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\33[?25h 显示光标
这样, 在某些时候就可以实现动态的输出
- #ifdef DEBUG
- #define F_OUT printf("%s:", __FUNCTION__);fflush(stdout);
- #define L_OUT printf("%s:%d:", __FILE__, __LINE__);fflush(stdout);
- #define A_OUT printf("%s:%d:%s:", __FILE__, __LINE__, __FUNCTION__);fflush(stdout);
- #define D_OUT printf("DEBUG:");fflush(stdout);
- #define F_PRINTF(fmt, arg...) F_OUT printf(fmt, ##arg)
- #define L_PRINTF(fmt, arg...) L_OUT printf(fmt, ##arg)
- #define A_PRINTF(fmt, arg...) A_OUT printf(fmt, ##arg)
- #define PRINTF(fmt, arg...) D_OUT printf(fmt, ##arg)
- #define DBUG(a) {a;}
- #else
- #define F_OUT
- #define L_OUT
- #define A_OUT
- #define D_OUT
- #define F_PRINTF(fmt, arg...)
- #define L_PRINTF(fmt, arg...)
- #define A_PRINTF(fmt, arg...)
- #define PRINTF(fmt, arg...)
- #define DBUG(a)
- #endif
- #define F_PERROR(fmt) F_OUT perror(fmt)
- #define L_PERROR(fmt) L_OUT perror(fmt)
- #define A_PERROR(fmt) A_OUT perror(fmt)
- #define PERROR(fmt) D_OUT perror(fmt)
posted on 2015-07-16 11:07 DayAfterDay 阅读(143) 评论(0) 编辑 收藏 举报