Chinaunix首页 | 论坛 | 博客
  • 博客访问: 42320
  • 博文数量: 3
  • 博客积分: 325
  • 博客等级: 一等列兵
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-06 12:07
文章分类

全部博文(3)

文章存档

2012年(1)

2011年(2)

我的朋友

分类: C/C++

2011-03-16 17:25:28

一.可变参数宏
C99格式:#define debug(format,...) fprintf(stderr,format,##__VA_ARGS__)
经测试,GCC支持该格式。定义中的##是为了避免当以debug("A message")调用时,宏扩展后多余的一个逗号而导致编译错误。

GCC格式:#define debug(format,args...) fprintf(stderr,format,##args)
显然,该格式在可读性和易用性上都是最佳选择。

C99支持可变参数宏前的格式:#define debug(args) (printf("DEBUG:"),printf args)
明显的缺点是:必须在调用时记得添加额外的一对括号,debug(("n is %d\n",n))

二.可变参数函数

阅读(1307) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:GCC编译器section属性

给主人留下些什么吧!~~