C宏为字符串添加前缀和后缀?
C Macro to prefix and suffix a string?
我正在尝试清理我的字符串着色代码。这是我必须为字符串添加红色 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);
^
;
我的宏有什么问题吗?
您似乎从某个地方复制了代码,但双引号无效试试这个
#define GET_RED_TEXT(x) "\x1B[31m" x "\x1B[00m"
请复制并粘贴到编辑器中。
请注意,您的代码未正确突出显示。
您的宏在 (“
、”
) 中包含智能引号,而不是真正的引号 ("
)。
此外,作为一种良好做法,在定义两边加上括号,并且 x
,例如:
#define GET_RED_TEXT(x) ("\x1B[31m" (x) "\x1B[00m")
我正在尝试清理我的字符串着色代码。这是我必须为字符串添加红色 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);
^
;
我的宏有什么问题吗?
您似乎从某个地方复制了代码,但双引号无效试试这个
#define GET_RED_TEXT(x) "\x1B[31m" x "\x1B[00m"
请复制并粘贴到编辑器中。
请注意,您的代码未正确突出显示。
您的宏在 (“
、”
) 中包含智能引号,而不是真正的引号 ("
)。
此外,作为一种良好做法,在定义两边加上括号,并且 x
,例如:
#define GET_RED_TEXT(x) ("\x1B[31m" (x) "\x1B[00m")