我不知道如何用变量定义宏字符串,如下所示:
#define str(x) "file x.txt"
,这意味着我希望str(1)引用“file 1.txt”。
但是,在这种情况下,str(1)或任何数字指的是“file x.txt”,因为x是一个字符。
有什么方法可以解决这个问题吗?
答案 0 :(得分:5)
连接字符串:
#define STR(x) "file " #x ".txt"
这使用了两种语言的词法特征:相邻的字符串文字被连接起来;参见C ++ 11 2.2 / 6和C11 5.1.1.2/6:
连接相邻的字符串文字标记。
答案 1 :(得分:1)
#define str(x) ("file " #x ".txt")
使用字符串化运算符#