【发布时间】:2017-01-17 09:29:38
【问题描述】:
// define the macro
#define FATAL(S,...) qDebug("%s,%s,%d,%s:"##S,"[scribble]",__FILE__,__LINE__,__FUNCTION__,##__VA_ARGS__)
// call the macro
FATAL("not supported commandid:%d",cmdid);
虽然此代码在 Windows 下工作(Qt 与 msvc2010),但当我尝试在 macOS 下编译它(Qt 与 clang)时,我收到错误:::
粘贴形成的 "%s,%s,%d,%s:""不支持 commandid:%d",无效 预处理令牌。
如何让它在 macOS 下工作,或者有其他方法可以实现相同的功能吗?
【问题讨论】:
-
我宁愿把宏定义为
#define FATAL(S,...) qDebug("[scribble],%s,%d,%s:" S,__FILE__,__LINE__,__FUNCTION__,##__VA_ARGS__)见example