我正在尝试清理我的代码以着色字符串。这是我必须将红色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);
^
;
我的宏观有什么想法吗?
答案 0 :(得分:3)
您的宏在(“
,”
)中有明智的引号而不是真实的引号("
)。
另外,作为一种良好做法,在定义上加上一个括号,x
,例如:
#define GET_RED_TEXT(x) ("\x1B[31m" (x) "\x1B[00m")
答案 1 :(得分:1)
您似乎已从某个地方复制了代码,双引号无效,请尝试此
#define GET_RED_TEXT(x) "\x1B[31m" x "\x1B[00m"
请将其复制并粘贴到编辑器中。
请注意,您的代码未正确突出显示。