我正在尝试清理我的代码以着色字符串。以下是我必须将红色 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")
您似乎从某个地方复制了代码,并且双引号无效 试试这个
#define GET_RED_TEXT(x) "x1B[31m" x "x1B[00m"
请将其复制并粘贴到编辑器中。
请注意,您的代码未正确突出显示。