如何将L前缀添加到MACRO

时间:2016-07-04 16:16:14

标签: c c-preprocessor

我有

#define STRING "string"

我想稍后在我的代码中将STR前缀添加到STRING宏中(我无法在定义中执行此操作)。怎么做?

2 个答案:

答案 0 :(得分:4)

这应该做:

#include <stdio.h>


#define CONCATENATE(e1, e2) e1 ## e2
#define PREFIX_L(s) CONCATENATE(L, s)

#define STRING "string"

int main(void)
{
    printf("%ls\n", PREFIX_L(STRING));
}

GCC附带的文档还涵盖了这些标准C预处理器的串联功能:https://gcc.gnu.org/onlinedocs/cpp/Concatenation.html

答案 1 :(得分:-1)

这应该有用。

#define STRING(x) x"string"

char * l_pString = STRING("");
wchar_t * l_pWideString = STRING(L);