yeqing

C++博客 首页 新随笔 联系 聚合 管理
  1 Posts :: 14 Stories :: 10 Comments :: 0 Trackbacks

修改ACE中的ACE_DEBUG宏

#define DEBUG_PREFIX ACE_TEXT("DEBUG%I")

#define MY_DEBUG(FMT, ...)    \
        ACE_DEBUG((LM_DEBUG, \
        DEBUG_PREFIX FMT \
        __VA_ARGS__ ))

缺省号代表一个可以变化的参数表。使用保留名 __VA_ARGS__ 把参数传递给宏。
当宏的调用展开时,实际的参数就传递给了。例如:

MY_DEBUG("YEQING")

MY_DEBUG()是一个可变参数宏,你能在每一次调用中传递不同数目的参数:

MY_DEBUG("YEQING ","IS ","A HANDSOME BOY");

可变参数宏不被ANSI/ISO C++ 所正式支持。因此,你应当检查你的编译器,看它是否支持这项技术。
至少在我自己测试的过程,VS6是不支持的
但是linux as3支持
使用的是gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-20)

posted on 2006-08-09 09:11 夜沁 阅读(523) 评论(0)  编辑 收藏 引用 所属分类: ace

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理