我创建了一个指向特定目录的#define.然后,我想将此定义与字符串文字结合使用:
#define PATH_RESOURCES "/path/to/resources/"
std::ifstream datafile(PATH_RESOURCES + "textures.dat");
Run Code Online (Sandbox Code Playgroud)
但是,编译器抱怨使用+运算符添加char类型:
error: invalid operands of types ‘const char [11]’ and ‘const char [13]’ to binary ‘operator+’
那么如何将#define与字符串文字结合起来呢?或者,是否有更好的方法完成此操作?我想使用一个const变量将是一个替代方案,但这意味着必须传递另一个参数,我宁愿将其保留为全局定义.
您可以通过一个接一个地编写它们来组合两个字符串文字,它们+之间没有加号:
std::ifstream datafile(PATH_RESOURCES "textures.dat");
Run Code Online (Sandbox Code Playgroud)
其中一个字符串文字恰好通过预处理器定义的事实并没有太大变化:你也可以这样做:
std::ifstream datafile(PATH_"/path/to/resources/" "textures.dat");
Run Code Online (Sandbox Code Playgroud)