我正在努力清理我的代码,以便给字符串上色。下面是我必须在字符串前面加上红色的ANSI颜色,然后在它后面加上重置颜色。
#define GET_RED_TEXT(x) “\x1B[31m” x “\x1B[00m”
但是,当我尝试使用它时。。。
src/util.c:18:15: error: expected expression
char *temp = GET_RED_TEXT("error: ");
^
includes/util.h:14:25: note: expanded from macro 'GET_RED_TEXT'
#define GET_RED_TEXT(x) “\x1B[31m” x “\x1B[00m”
^
src/util.c:22:14: error: expected ';' at end of declaration
va_end(arg);
^
;
我的宏有什么想法吗?
最佳答案
宏在(“
,”
)中有智能引号,而不是实引号("
)。
此外,作为一个良好的实践,在定义周围加上一个括号,然后x
,例如:
#define GET_RED_TEXT(x) ("\x1B[31m" (x) "\x1B[00m")