#define STR1      "s"
#define STR2      "1"
#define STR3      STR1 ## STR2

可以把STR1STR2连接到"s1"吗? 您可以通过将参数传递给另一个宏函数来完成此操作.但是有没有一条直达的路呢?

推荐答案

如果它们都是字符串,您只需执行以下操作:

#define STR3 STR1 STR2

然后扩展到:

#define STR3 "s" "1"

在C语言中,用"s" "1"中的空格分隔两个字符串完全等同于有一个字符串"s1".

C++相关问答推荐

我的C语言中的回归函数如何工作?

定义_MISIX_C_SAL时,在MacOS上编译失败,并出现奇怪错误

为什么信号量为空= 0,而不是阻塞?

为什么getchar()挂起了,尽管poll()返回了一个好的值?""

找出文件是否包含给定的文件签名

由Go调用E.C.引起的内存快速增长

测量ARM MCU中断延迟的问题

如何调试LD_PRELOAD库中的构造函数?

在一个小型玩具项目中实现终端历史记录功能

致命:ThreadSaniizer:在Linux内核6.6+上运行时意外的内存映射

插座打开MacOS组件

这个C程序在工作中途停止获取输入.我收到分段故障(核心转储).我还是不知道问题出在哪里

For循环中的变量行为不符合预期.[C17]

致命错误:ASM/rwan ce.h:没有这样的文件或目录.符号链接还不够

不同原型的危险C函数是可能的

我在C中运行和调试时得到了不同的输出

如何在不使用字符串的情况下在c中编写函数atof().h>;

当我在34mb的.mp4文件中使用FREAD时,我得到了一个分段错误,我如何解决它?

为什么argc和argv即使在主函数之外也能工作?

为什么需要struct in_addr