如何在c ++中将文字字符串和MACRO连接到有效字符串

时间:2014-06-29 09:00:22

标签: c++ string qt macros

我有:

QString ver ="";
QString ver += "-svn-"SVN_REVISION

会产生错误,指向我:

error: missing terminating " character
    ver += "-svn-"SVN_REVISION;

SVN_REVISION定义为1。

如何将它们连接成有效的字符串?

2 个答案:

答案 0 :(得分:3)

您可以使用预处理器的stringify支持,如评论中所述。这是一个例子:

#define BASIC_STR(x) #x
#define STR(x) BASIC_STR(x)

QString ver ="";
QString ver += "-svn-" STR(SVN_VERSION);

答案 1 :(得分:0)

QString ver = QString("-svn-%1").arg(SVN_REVISION);