如何通过合并一个非字符串宏来生成一个字符串,如下所示?
#define SOC 12 printf("This is the default SoC:" SOC "!");
[更新]这是嵌入式cpp11,我想限制资源的使用,所以我需要一个编译时的解决方案,而不是运行时。
s3fp2yjn1#
使用预处理器,您可以将值字符串化:
#define STRINGIFY(s) #s #define STRINGIFY_VALUE(s) STRINGIFY(s)
然后使用C字符串的串联:
printf("This is the default SoC:" STRINGIFY_VALUE(SOC) "!");
Demo
1条答案
按热度按时间s3fp2yjn1#
使用预处理器,您可以将值字符串化:
然后使用C字符串的串联:
Demo