C------#和##

C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),

简单说就是在对它所引用的宏变量 通过替换后在其左右各加上一个双引号


而##被称为连接符(concatenator),用来将两个Token连接为一个Token。

 

#include "stdio.h"

#define f(a,b) a##b
#define b(a) #a
void main()
{
  int a=0;
  int a1=1;
  int a2=2;
  int a3=3;
  printf("%s=%d",b(a1),f(a,1));

  return;
}

输出:a1=1

posted @ 2014-11-01 11:58  firerdong  阅读(421)  评论(0编辑  收藏  举报