#include <stdio.h>;
#include <stdlib.h>;
#define CAT(x,y) x##y
#define MACRO(x) #x
#define SNPRINTF(buf,size,fmt,x) \
snprintf(buf,size,fmt,MACRO(x))
int main()
{
char a[128];
SNPRINTF(a,sizeof(a)-1,"%s",CAT(Hello,World));
printf("%s\n",a);
return 0;
}
这里主要用到了单个的"#"。单个的"#"出现在宏中,表示对#后面的变量替换后,用双引号引起来。