在Windows下,我有一个包含Windows风格路径的环境变量。我想将该路径构建到我的程序中并打印出来。例如,如果我的路径是c:\top,我使用-DTOP=$(TOP)将其传递给编译器。请注意,在将其传递给编译器之前,我无法将其转换为c:\\top。
目前,我有以下等效内容:
到目前为止,我的所有尝试都失败了,原因涉及到“或者()或者\”的变化。谢谢。
目前,我有以下等效内容:
#define TOP=c:\top
我希望得到以下等效内容:
char path[]="c:\\top";
我不能只使用字符串操作符:
#define WRAP1(X) #X
#define WRAP(X) WRAP1(X)
char path[] = WRAP(TOP);
这只会得到字符串“c:\top”,编译器将其视为转义序列(即 \t)。
我认为可能的解决方案是构造一个字符串字面量,但其他解决方案也可以。是否有一种使用宏来构造字符串字面量的方法,可以产生以下结果:
char path[] = R"foo(c:\top)foo";
到目前为止,我的所有尝试都失败了,原因涉及到“或者()或者\”的变化。谢谢。