c语言中,##表示把两个宏参数贴合在一起,而单个#的功能是将其后面的宏参数进行字符串化操作。即相当于给后面字符串两边加上引号。这里写代码片
#include<stdio.h>
#define f(a,b) a##b
#define g(a) #a
#define h(a) g(a)
int main()
{
printf("%s\n",h(f(1,2)));//输出12
printf("%s\n",g(f(1,2)));//输出f(1,2)
return 0;
}
还有如下
#define A(x) T_##x
#define B(x) #@x
#define C(x) #x
我们假设:x=1,则有:
A(1)------〉T_1
B(1)------〉'1'
C(1)------〉"1"
本文详细介绍了C语言中预处理器的使用方法,包括如何利用##将两个宏参数连接起来,以及如何通过#将宏参数转化为字符串。此外还展示了几个具体的预处理指令定义,并通过实例解释了这些指令的作用。

被折叠的 条评论
为什么被折叠?



