不管怎么说,编译器的Warning不要小视,最好不要忽略,一个程式都做得出来,何况几个小小的Warning呢?
32、书写Debug版和Release版的程式
----------------
程式在研发过程中必然有许多程式员加的调试信息。我见过许多项目组,当程式研发结束时,发动群众删除程式中的调试信息,何必呢?为什么不像VC 那样建立两个版本的目标代码?一个是debug版本的,一个是Release版的。那些调试信息是那么的宝贵,在日后的维护过程中也是很宝贵的东西,怎么能说删除就删除呢?
利用预编译技术吧,如下所示声明调试函数:
#ifdef DEBUG
void TRACE(char* fmt, ...)
{
......
}
#else
#define TRACE(char* fmt, ...)
#endif
于是,让任何的程式都用TRACE输出调试信息,只需要在在编译时加上一个参数"-DDEBUG",如:
cc -DDEBUG -o target target.c
于是,预编译器发现DEBUG变量被定义了,就会使用TRACE函数。而假如要发布给用户了,那么只需要把取消"-DDEBUG"的参数,于是任何用到TRACE宏,这个宏什么都没有,所以源程式中的任何TRACE语言全部被替换成了空。一举两得,一箭双雕,何乐而不为呢?
顺便提一下,两个很有用的系统宏,一个是"__FILE__",一个是"__LINE__",分别表示,所在的源文档和行号,当您调试信息或是输出错误时,能够使用这两个宏,让您一眼就能看出您的错误,出现在哪个文档的第几行中。这对于用C/C 做的大工程很的管用。
综上所述32条,都是为了三大目的--
1、程式代码的易读性。
2、程式代码的可维护性,
3、程式代码的稳定可靠性。
有修养的程式员,就应该要学会写出这样的代码!这是任何一个想做编程高手所必需面对的细小的问题,编程高手不但技术要强,基础要好,而且最重要的是要有"修养"!
好的软件产品绝不但仅是技术,而更多的是整个软件的易维护和可靠性。
软件的维护有大量的工作量花在代码的维护上,软件的Upgrade,也有大量的工作花在代码的组织上,所以好的代码,清淅的,易读的代码,将给大大减少软件的维护和升级成本。




