【发布时间】:2017-03-07 08:27:20
【问题描述】:
我想从#define 转换为字符串。
我的代码:
#ifdef WIN32
#define PREFIX_PATH = "..\\"
#else
#define PREFIX_PATH = "..\\..\\"
#endif
#define VAL(str) #str
#define TOSTRING(str) VAL(str)
string prefix = TOSTRING(PREFIX_PATH);
string path = prefix + "Test\\Input\input.txt";
但是,它没有工作..
前缀值为“..\\\”
知道是什么问题..
谢谢!
【问题讨论】:
-
这是作品
string prefix = PREFIX_PATH; -
string prefix = PREFIX_PATH; -
PREFIX_PATH已定义为带引号的字符串,但它通过VAL传递,它尝试再次使用#引用符号。另外请注意,非 Windows 操作系统通常使用正斜杠,而不是反斜杠作为路径分隔符。 -
你的宏定义有误。
标签: c++ string c-preprocessor