博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
debug宏起作用应用
阅读量:6444 次
发布时间:2019-06-23

本文共 592 字,大约阅读时间需要 1 分钟。

在linux内核中重新定义了printk,如pr_debug,dev_dbg等。要使用这些宏函数就需要定义DEBUG。

详见:

那么DEBUG该定义在什么地方呢?

定义到pr_debug或dev_dbg头文件中,则内核所有的宏都起作用。则打印信息太多,不易调试。

理想的宏定义 应该是想打印信息的模块或文件中,那应放到什么位置呢?

最好放到使用文件的最开头

测试用例:

//#define DEBUGstatic inline int poww(int v){#ifdef DEBUG    return v*v;#else    return v;#endif}
#include 
#define DEBUG#include "macro.h"//#define DEBUGint main(){ int test = 0; test = poww(5); printf("macro value is %d\n", test); return 0;}

注:上述不同位置定义DEBUG,输出结果不同。

要使DEBUG宏起作用,应将DEBUG定义到宏函数头文件的前面,最不易出错的位置为文件开头。

 

宏在程序编译的预处理阶段,直接在代码处展开,且按宏定义处当时值带入文件中,所以在宏定义头文件的前和后定义DEBUG结果完全不一样。

转载地址:http://scpwo.baihongyu.com/

你可能感兴趣的文章
用K-means聚类算法实现音调的分类与可视化
查看>>
cisco Vlan间通信之单臂路由
查看>>
CentOS-5.6-x86_64 下安装配置NFS
查看>>
我的友情链接
查看>>
ClassLoader
查看>>
COM 互操作 - 第一部分”示例
查看>>
Oracle中随机抽取N条记录
查看>>
自动安装
查看>>
Javascript生成随机数
查看>>
java中关于this的学习笔记
查看>>
sql打印了,但数据库木有数据处理
查看>>
机器学习面试之各种混乱的熵(一)
查看>>
zabbix3.0.4安装部署文档(三)----添加监控主机
查看>>
抓鸡 抓服务器 1433 3306 全自动效率抓鸡
查看>>
Linux常用软件
查看>>
Java下数字类型的转换
查看>>
DNS原理及DNS服务器的建立(主从)
查看>>
我的友情链接
查看>>
mongodb的安装及主从复制
查看>>
VMware虚拟化技术培训(10) 桌面虚拟化之二
查看>>