程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C宏通过字符代码生成字符串大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决C宏通过字符代码生成字符串?

开发过程中遇到C宏通过字符代码生成字符串的问题如何解决?下面主要结合日常开发的经验,给出你关于C宏通过字符代码生成字符串的解决方法建议,希望对你解决C宏通过字符代码生成字符串有所启发或帮助;

我正在使用一个游戏引擎,该引擎在字符串中使用转义码来执行诸如设置颜色之类的命令。例如,要将颜色设置为红色,您可以编写 "Red text:\x81\xFF\x00\x00\xFfHello!" (0x81,red,green,blue,Alpha)。

是否可以创建TEXT_color(r,g,b,a) 这样的宏,使 TEXT_color(255,255) 扩展为 "\x81\xFF\x00\x00\xFF" 以用于常量字符串?

解决方法

它需要在不同的宏中混合使用标记粘贴和字符串化,但是,是的,可以使用 base-16 数字:

#include <stdio.h>

#define TEXT_COLOR2(r,g,b,a) "\x81" #r #g #b #a
#define TEXT_COLOR(r,a) TEXT_COLOR2(\x ##r,\x ##g,\x ##b,\x ##a)

int main(void) {
  char s[] = "Red text:" TEXT_COLOR(FF,00,FF) "Hello!";
  for (const char *c = s; c < s + sizeof(s); c++) {
    printf("\\x%02hhX",*c);
  }
  putchar('\n');
  return 0;
}

大佬总结

以上是大佬教程为你收集整理的C宏通过字符代码生成字符串全部内容,希望文章能够帮你解决C宏通过字符代码生成字符串所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: