您当前的位置: 首页 > 

柳鲲鹏

暂无认证

  • 0浏览

    0关注

    4642博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

定义带参数的C宏,方便输出调试信息

柳鲲鹏 发布时间:2018-05-16 08:30:22 ,浏览量:0

C中调试,肯定要有输出。而自带的输出总是不够方便:

  1. 打开时输出太多。
  2. 不知道是哪里输出的。

这个时候,需要自定义宏。自定义宏最麻烦的问题,怎么自带参数呢?吾有专用范例介绍给大家:

(__FUNCTION__如果没有,可以使用__func__)

//不同平台输出,只要改一句即可。也可以通过ifdefine处理。
#define WX_LOG_PRINT                wx_print

//为了简单化。
//有时间戳功能输出。
#define WX_LOG_HEAD                 char timetext[64]; timestampText(timetext); WX_LOG_PRINT("%s:%s(%4d)"
#define WX_LOG_TAIL                 "\n", timetext, __FUNCTION__, __LINE__

#define WX_LOG_NEWLINE()            {WX_LOG_PRINT("\n"                                    );}
#define WX_LOG_HERE()               {WX_LOG_HEAD          WX_LOG_TAIL                );}
#define WX_LOG_INFO(FMT, ...)  	    {WX_LOG_HEAD " " FMT  WX_LOG_TAIL, ##__VA_ARGS__ );}
#define WX_LOG_TEXT(TEXT)      	    {WX_LOG_HEAD " " "%s" WX_LOG_TAIL, TEXT          );}
#define WX_LOG_INT(INT)      	    {WX_LOG_HEAD " " "%d" WX_LOG_TAIL, INT           );}

//channel有多个,想知道是那个输出的,所以增加一个宏,channel->tag_name。语法如下:
#define WX_LOG_CHANNEL(FMT, channel, ...)  	LOG_INFO("%s " FMT, channel->tag_name, ##__VA_ARGS__)

print是可以输出日志的函数,不同平台更换。

带有时间错、函数名、行号,在开发阶段特别方便。

相信能给需要的朋友带来便利。

 

 

 

关注
打赏
1665724893
查看更多评论
立即登录/注册

微信扫码登录

0.0495s