首页 > 解决方案 > 如何在宏定义#中包含转义序列?

问题描述

我正在尝试在 C 中使用这个宏定义:

#define STR(x) #x

是否可以在 x 中包含一些转义序列?例如,我想定义一个字符串,如:

char* str = "\'";

此声明似乎不起作用:

char* str1 = STR(\');

如果我必须使用这个宏定义,有没有办法包含包含撇号的字符串"\'"?谢谢!

标签: cc-preprocessorstringification

解决方案


const char* img = "/Image/'.png";

也可以写成

const char* img = "/Image/" "'" ".png";

所以你可以使用

#define IMG(x) "/Image/" x ".png"

const char* img = IMG("'");

推荐阅读