C/C++开发平时用的自定义debug函数
一、无颜色版
一、自定义printf #include <stdio.h> #ifdef MYDEBUG #define DEBUG(arg...) {\ printf("[debug]:%s:%s:%d ---->",__FILE__,__FUNCTION__,__LINE__);\ printf(arg);\ fflush(stdout);\ } #else #define DEBUG(arg...) {} #endif 调用实例: DEBUG("my debug......\n"); DEBUG("the a is %d\n",a); 二、自定义printf #ifdef DEBUG #define D_STR(_STR_) printf("f:%s(l:%d)%s\n",__FILE__,__LINE__,_STR_); #define D_LINE printf("f:%s(l:%d)-fn:%s\n",__FILE__,__LINE__,__FUNCTION__); #define D_CHAR(_CHAR_) printf("f:%s(l:%d)%d\n",__FILE__,__LINE__,_CHAR_); #define D_HEX(_HEX_) printf("f:%s(l:%d)[%x]\n",__FILE__,__LINE__,_HEX_); #else #define D_STR(_STR_) ; #define D_LINE ; #define D_CHAR(_CHAR_) ; #define D_HEX(_HEX_) ; #endif 三、vfprintf static void fprint_message_to_stdout(const char *format, va_list arg_ptr) { (void) vfprintf(stdout, format, arg_ptr); }
二、彩色版
#define LOG_DEBUG 0 #define LOG_INFO 1 #define LOG_WARNING 2 #define LOG_ERR 3 #define printf_error(s) \ printf("\e[1;31m[%s:%d func:%s]%s\e[0m\n", __FILE__, __LINE__, __FUNCTION__, s); #define printf_run(s) \ printf("\e[1;32m[%s:%d func:%s]%s\e[0m\n", __FILE__, __LINE__, __FUNCTION__, s); #define printf_warn(s) \ printf("\e[1;33m[%s:%d func:%s]%s\e[0m\n", __FILE__, __LINE__, __FUNCTION__, s); #define printf_log(t,s) \ switch (t) \ { \ case LOG_ERR: \ printf_error(s); \ break; \ case LOG_DEBUG: \ case LOG_INFO: \ printf_run(s); \ break; \ case LOG_WARNING: \ printf_warn(s); \ default: \ printf(s); \ break; \ }
C/C++开发平时用的自定义debug函数的更多相关文章
- weex 项目开发(五)自定义 过滤函数 和 混合 及 自定义 Header 组件
1.自定义 过滤函数 src / filters / index.js /** * 自定义 过滤函数 */ export function host (url) { if (!url) return ...
- Android Studio 自定义debug签名文件keystore
Android Studio 自定义debug签名文件keystore
- iOS开发UI篇—Quartz2D(自定义UIImageView控件)
iOS开发UI篇—Quartz2D(自定义UIImageView控件) 一.实现思路 Quartz2D最大的用途在于自定义View(自定义UI控件),当系统的View不能满足我们使用需求的时候,自定义 ...
- (Unity)Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进展混淆,避免被反编译
Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译. 1.打开VS,博主所用版本是Visual Studio 2013. 2.新建一个VC项目 ...
- C#微信公众号开发 -- (六)自定义菜单事件之CLICK
微信公众号中当用户手动点击了按钮,微信公众号会被动的向用户发送文字消息或者图文消息. 通过C#微信公众号开发 -- (五)自定义菜单创建 我们知道了如何将CLICK类型的按钮添加到自己的微信公众平台上 ...
- ionic3+angular4开发混合app 之自定义组件
这里主要是记录ionic3+angular4开发混合app时自定义组件,我想自定义组件的方法和angular4应该类似,具体在纯angular4中自定义组件,暂时没有实践,个人觉得差别不大,之后实践了 ...
- 转: Android 软件开发之如何使用Eclipse Debug调试程序详解(七)
转自: http://www.uml.org.cn/mobiledev/201110092.asp Android 软件开发之如何使用Eclipse Debug调试程序详解(七) 发布于2011- ...
- 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
概述 最近,有客户向我们请求开发一个前端下拉控件,需求是显示了一个列表,其中包含可由用户单独选择的项目控件,该控件将在下拉列表中显示多选TreeView(树形图). 如今WijmoJS已经实现了该控件 ...
- 使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_132 最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,当然了,钉钉这个产品真的是让人一言难尽,要多难用有多难用 ...
随机推荐
- [Android Pro] StorageManager简介
StorageManager StorageManager is the interface to the systems storage service. The storage manager h ...
- OpenShift应用镜像构建(1) S2I tomcat 镜像定制
参考并感谢https://www.jianshu.com/p/fd3e62263046 在对接项目制作应用镜像的过程中,经常发现避免不了的是需要写Dockerfile,(当然另外一种方式是直接run一 ...
- websocket+golang聊天室
原文地址: http://www.niu12.com/article/3 websocket+golang聊天室 main.go和index.html放在同一目录下 main.go package m ...
- 重写alert方法完成类似gmail的友好提示
当在网页中调用aelrt()方法的时候,系统会自动显示友好的提示方式 . 下面是css样式控制代码: /*----------------------------------------------- ...
- 二十四种设计模式:模板方法模式(Template Method Pattern)
模板方法模式(Template Method Pattern) 介绍定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.Template Method使得子类可以不改变一个算法的结构即可重定义该算法 ...
- scrapy-splash抓取动态数据例子八
一.介绍 本例子用scrapy-splash抓取界面网站给定关键字抓取咨询信息. 给定关键字:个性化:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信息 ...
- STL_算法_区间的比較(equal、mismatch、 lexicographical_compare)
C++ Primer 学习中.. . 简单记录下我的学习过程 (代码为主) //全部容器适用 equal(b,e,b2) //用来比較第一个容器[b,e)和第二个容器b2开头,是否相等 e ...
- Netty利用ChannelGroup广播消息
在Netty中提供了ChannelGroup接口,该接口继承Set接口,因此可以通过ChannelGroup可管理服务器端所有的连接的Channel,然后对所有的连接Channel广播消息. Serv ...
- Table分页显示调整
这是table分页显示的代码,下面是对应调整的代码 /*分页调整*/ .fenye .dataTables_info{ line-height: 28px; } .fenye .pagination{ ...
- 网络编程-Java中的Internet查询
前提 在深入理解URL.URI等概念,或者学些Socket相关的知识之,有必要系统理解一下Internet相关的一些基础知识. Internet地址 连接到Internet(因特网)的设备称为节点(n ...