1.宏定义开关方法
我们在调试程序的时候,经常会需要知道在运行时某些变量的状态(值),我们可以通过定义调试开关,来生成debug调试版本或者release最终发行版本程序,先看个简单的例子:
void main(void)
{
int runtime_flag;//举例一个流程时的判断标志
/***注释标记1***
省略一些变量定义或函数运行
这些函数可能会影响runtime_flag的值
***************/
if(runtime_flag == 1)
{
/***注释标记2***
省略一些函数运行
这些函数可能会影响runtime_flag的值
***************/
}
else
{
/***注释标记3***
省略一些函数运行
这些函数可能会影响runtime_flag的值
***************/
}
/***注释标记4***
省略一些函数运行
这些函数可能会影响runtime_flag的值
***************/
}
以上我们举了一个比较简单的例子说明,在类似代码中,我们如果需要知道某一变量运行时的状态,比如想知道注释标记3处的runtime_flag的值,我们该怎么办?
一般调试,是通过编译调试软件进入调试debug模式下加断点等方法。
但是,很多场景下,尤其是产品项目已落地测试维护的产品,我们是没有办法在现场通过调试软件进行源码分析,此时通过预先的宏技巧,来实现调试开关就显得尤为关键。让我们直接上源码:
/*宏调试开关*/
#define debug

博客介绍了程序调试中两种开关方法。宏定义开关可通过预先的宏技巧,在调试和发行版本间切换,方便查看变量运行状态;变量开关能在外部调试时动态切换版本状态。最后对比了两种方法的异同,宏开关在发行版不占空间,变量开关切换更简便。
最低0.47元/天 解锁文章
577

被折叠的 条评论
为什么被折叠?



