如何在c++中连接字面值字符串和宏到有效的字符串

How to concatenate literal string and MACRO to valid string in c++

本文关键字:字符串 有效 字面值 c++ 连接      更新时间:2023-10-16

我有:

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

产生一个错误,指向ver:

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

SVN_REVISION定义为1。

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

您可以像评论中提到的那样使用预处理器的stringify支持。下面是一个例子:

#define BASIC_STR(x) #x
#define STR(x) BASIC_STR(x)
QString ver ="";
QString ver += "-svn-" STR(SVN_VERSION);
QString ver = QString("-svn-%1").arg(SVN_REVISION);