修改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)