我有
#define STRING "string"
Run Code Online (Sandbox Code Playgroud)
我想稍后在我的代码中将L前缀添加到STRING宏中(我不能在定义中这样做)。怎么做?
应该这样做:
#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));
}
Run Code Online (Sandbox Code Playgroud)
这些标准C预处理程序的串联功能也包含在GCC随附的文档中:https : //gcc.gnu.org/onlinedocs/cpp/Concatenation.html