匠人按:本连载已经停顿好久了,但看到这么多人顶帖,实在感动,要么,咱再挤点牙膏出来?
十、拉闸睡觉!统一管理调试代码
前面介绍的几种方法,需要在程序中增加一些临时性的调试代码。
有些调试代码是无害的,比如只是一些延时指令,或者是在不使用的IO口上有一些输出而已。
但另一些调试代码,与正式要求的程序功能是相冲突的。那么这些代码在完成调试之后就应该被删除或屏蔽掉。
那么会不会出现意外,把本该被删除的代码漏删了?结果埋下祸害?——如果调试代码少,出错的概率比较低,只要认真仔细点还好办;但是如果程序中的调试代码写得比较多,那么确实很担心会发生这种问题。
或者另一种情况,就是前脚把调试代码删除或屏蔽掉,后脚发现还需要再调试,又要重新输入或打开那些代码?
如何管理这些代码呢?这个我们要向宿舍管理员学习了。他们是这么做的,给所有房间安装一个总电闸。到了晚上11点就把总闸一拉,看书的、打牌的、喝酒的、胡侃的、泡妞的、夜游的、Y们都给我老老实实睡觉去吧!
程序中,这样的总闸也是可以通过条件编译的方式来实现的。就像这样:
//#define TEST_MD //调试状态标志(在调试时打开,正式烧录芯片时屏蔽)
//在编写调试代码时,采用下面的形式:
#ifdef TEST_MD //如果是调试状态,则编译这段代码
……
……
#else //如果不是调试状态,则编译这段代码
……
……
#endif
一个总闸,把管理简单化了。欧耶!
(连载也许未完,也许已完,视大家的关注程度和匠人的状态而定……) |