我有一段代码需要连接字符串,如下所示:
#define CMD(A,B) CMD_##A_PROMPT##B
void main()
{
int a = 10, b = 5;
printf("%s\n", CMD(a, b));
}
所需的输出是:CMD10_PROMPT5
这可以通过任何方式实现吗?
最佳答案
我不认为这可以完成,因为您正在寻找的宏是编译时“字符串化”,参数在运行时接收它们的值-时间。
如果您正在寻找运行时“字符串化”,请使用 sprintf
等。
关于c - 使用## 和# 运算符连接 C 宏中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10928217/