在C ++中用@ means包围的字符串文字是什么

时间:2014-04-07 13:12:02

标签: c++ cmake

我在源代码中遇到过这个问题:
#define DEFAULT_PATHNAME "@SDK_DEFAULT_PATHNAME@"

在这种情况下@符号表示什么?

修改
Camke被用来产生这个项目 该值用作文件的路径

2 个答案:

答案 0 :(得分:6)

CMake有这个很棒的命令configure_file,它允许你的构建系统生成一个在构建中使用的文件,其中变量SDK_DEFAULT_PATHNAME的内容(值)将是将@SDK_DEFAULT_PATHNAME@的位置放在“已配置的文件”中。

答案 1 :(得分:1)

在这种情况下,它是字符串的一部分,没什么特别的。

例如,在Windows上,您可以使用以下字符串:

#define DEFAULT_PATHNAME "%PATH_TO_SDK%"

%个角色扮演相同的角色。在C ++和一般的字符串中,它没有任何意义(与\不同,它用于转义字符)。

编辑: 澄清一下,尤其是关于你的评论:

  

该值用作程序打开文件的路径,当删除@程序时

操作系统可能需要读取此字符,正如我在Windows上使用%示例所述,将该路径视为在环境变量中查找的内容,例如。再一次,它在C ++或一般字符串中没有特殊含义,但可能适用于其他程序。