在C语言中#是在宏定义中将参数进行字符串化
#include<stdio.h>
#define dprint(expr) printf(#expr"=%d\n",expr);
int main()
{
int a=20,b=10;
dprint(a/b);
return 0;
}
/*
输出:a/b=2
*/
在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)));
printf("%s\n",g(f(1,2)));
return 0;
}
运行结果为
12
f(1,2)