#,##,#@在宏定义中的使用

作者在 2012-06-03 09:38:59 发布以下内容
先看程序:
#include <stdio.h>

#define f(a,b) a##b
#define g(a)   #a
#define h(a)   g(a)
#define p(a)   #@a

int main(int argc, char* argv[])
{
  printf("%d\n",f(1,2));
  printf("%s\n", g(f(1,2)));
  printf("%s\n", h(f(1,2)));
  printf("%c, %d\n", p(1), p(1));
  return 0;
}
输出结果:
12
f(1,2)
12
1,49
##是连接操作符(是token-pasting operator),可以将操作符两端的标识符级联起来。#是字符串化操作符(stringizing operator),可以将操作符后的标识符转化成字符串。#@是字符化操作符(charizing),可以将操作符后的数据转化成字符。
默认分类 | 阅读 869 次
文章评论,共0条
游客请输入验证码
文章分类