pro*c中怎样使用变参宏
自己写了一个打印的函数,用于实现分级打印的功能,函数原型大致如下:
int myPrint(int iLevel,const char* sFile,const char* sFunction, const char* sLine, const char* sFmt,...) { /*函数实现*/ }
然后想通过定义宏的形式,忽略掉sFmt之前的参数,以方便调用
宏定义为:
#define logInfo(__VA_ARGS__) myPrint(_LEVEL_INFO,__FILE__,__FUNCTION__,__LINE__,__VA_ARGS__) #define logError(__VA_ARGS__) myPrint(_LEVEL_ERROR,__FILE__,__FUNCTION__,__LINE__,__VA_ARGS__)
此程序直接用cc编译后可以正常使用,能达到效果,但是在pro*c里面调用logInfo()时如果参数超过一个就会编译出错,从网上查得是pro*c不支持变参宏。
请问有没有办法可以使pro*c支持这个宏,或是通过其他办法,可以让我再调用我的myPrint()函数时,免去输入“_LEVEL_INFO,__FILE__,__FUNCTION__,__LINE__”这些参数?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
原来“_LEVEL_INFO,__FILE__,__FUNCTION__,__LINE__,__VA_ARGS__”都是宏,理解有偏差了
引用来自“hikari”的答案