C宏通过字符代码生成字符串
我正在使用一个游戏引擎,它使用字符串中的转义码来执行诸如设置颜色之类的命令。例如,要将颜色设置为红色,请编写C宏通过字符代码生成字符串,c,string,macros,c-preprocessor,C,String,Macros,C Preprocessor,我正在使用一个游戏引擎,它使用字符串中的转义码来执行诸如设置颜色之类的命令。例如,要将颜色设置为红色,请编写“红色文本:\x81\xFF\x00\x00\xfhello!”(0x81,红色、绿色、蓝色、alpha) 有没有可能创建一个像TEXT\u COLOR(r,g,b,a)这样的宏,使得TEXT\u COLOR(255,0,0255)可以扩展到“\x81\xFF\x00\x00\xFF”,以便在常量字符串中使用?在不同的宏中混合使用标记粘贴和字符串化,但是,是的,可以使用base-16数字:
“红色文本:\x81\xFF\x00\x00\xfhello!”
(0x81,红色、绿色、蓝色、alpha)
有没有可能创建一个像
TEXT\u COLOR(r,g,b,a)
这样的宏,使得TEXT\u COLOR(255,0,0255)
可以扩展到“\x81\xFF\x00\x00\xFF”
,以便在常量字符串中使用?在不同的宏中混合使用标记粘贴和字符串化,但是,是的,可以使用base-16数字:
#包括
#定义文本颜色2(r,g,b,a)“\x81”#r#g#b#a
#定义文本颜色(r,g,b,a)文本颜色2(\x##r、\x##g、\x##b、\x#a)
内部主(空){
字符s[]=“红色文本:”文本颜色(FF,00,00,FF)“你好!”;
对于(常量字符*c=s;c
您当然可以使用文本颜色(FF,00,00,FF)