#define 中 # ## ##__VA_ARGS__

来源:互联网 发布:河北省网络行政学院 编辑:程序博客网 时间:2024/06/06 07:53

①“#” 是把跟在后面的参数转成一个字符串

   eg:

   #define OUTPUT(A) cout << #A << “:”<< (A) << endl;

int  main()

   {

       int a = 1, b = 2;

       OUTPUT(a);

      OUTPUT(b);

      OUTPUT(a+b);

      return 0;

}

   结果: a:1

          b:2

          a+b:3

   结论:#后面的参数变为字符串

②##是连接符号,把参数连接在一起

  eg:

  #define FUN(arg)  my##arg

   则 FUN(ABC)等价于myABC

③##__VA_ARGS__

  是一个可变参数的宏,当可变参数的个数为0时,这里的##起到把前面多余的”,”去掉的作用

原创粉丝点击