/** * @file color.h * @brief ANSI终端颜色控制码定义 * * 提供跨平台的终端文本颜色和样式控制支持 */ #ifndef __SMCC_TERMINAL_COLOR_H__ #define __SMCC_TERMINAL_COLOR_H__ /// @name 前景色控制码 /// @{ #define ANSI_FG_BLACK "\33[30m" ///< 黑色前景 #define ANSI_FG_RED "\33[31m" ///< 红色前景 #define ANSI_FG_GREEN "\33[32m" ///< 绿色前景 #define ANSI_FG_YELLOW "\33[33m" ///< 黄色前景 #define ANSI_FG_BLUE "\33[34m" ///< 蓝色前景 #define ANSI_FG_MAGENTA "\33[35m" ///< 品红色前景 #define ANSI_FG_CYAN "\33[36m" ///< 青色前景 #define ANSI_FG_WHITE "\33[37m" ///< 白色前景 /// @} /// @name 背景色控制码 /// @{ #define ANSI_BG_BLACK "\33[40m" ///< 黑色背景 #define ANSI_BG_RED "\33[41m" ///< 红色背景 #define ANSI_BG_GREEN "\33[42m" ///< 绿色背景 #define ANSI_BG_YELLOW "\33[43m" ///< 黄色背景 #define ANSI_BG_BLUE "\33[44m" ///< 蓝色背景 #define ANSI_BG_MAGENTA "\33[45m" ///< 品红色背景(注:原始代码此处应为45m) #define ANSI_BG_CYAN "\33[46m" ///< 青色背景 #define ANSI_BG_WHITE "\33[47m" ///< 白色背景 /// @} /// @name 文字样式控制码 /// @{ #define ANSI_UNDERLINED "\33[4m" ///< 下划线样式 #define ANSI_BOLD "\33[1m" ///< 粗体样式 #define ANSI_NONE "\33[0m" ///< 重置所有样式 /// @} /** * @def ANSI_FMT * @brief 安全文本格式化宏 * @param str 目标字符串 * @param fmt ANSI格式序列(可组合多个样式) * * @note 当定义ANSI_FMT_DISABLE时自动禁用颜色输出 * @code * printf(ANSI_FMT("Warning!", ANSI_FG_YELLOW ANSI_BOLD)); * @endcode */ #ifndef ANSI_FMT_DISABLE #define ANSI_FMT(str, fmt) fmt str ANSI_NONE ///< 启用样式包裹 #else #define ANSI_FMT(str, fmt) str ///< 禁用样式输出 #endif #endif // __SMCC_TERMINAL_COLOR_H__