书写Debug版和Release版的程序
来源:互联网 发布:c语言多个文件编写 编辑:程序博客网 时间:2024/05/30 19:35
————————————————
程序在开发过程中必然有许多程序员加的调试信息。我见过许多项目组,当程序开发结束时,发动群众删除程序中的调试信息,何必呢?为什么不像VC++那样建立两个版本的目标代码?一个是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++做的大工程非常的管用。
- 书写Debug版和Release版的程序
- Cmake:生成 debug 版和 release 版的程序
- Debug版和Release版的区别
- Debug和Release版的区别
- 程序的Debug 版本和Release 版本
- [收藏]C++ Tips(13)--Debug版和Release版的程序
- [收藏]C++ Tips(13)--Debug版和Release版的程序
- Release版与Debug版程序的问题
- Release版与Debug版程序的问题
- Release版与Debug版程序的问题
- Release版与Debug版程序的问题
- Debug系列:VC++程序Release版崩溃的解决办法
- Visual C++ Debug 与 Release版本区别 怎样“调试” Release 版的程序
- vc++同时生成 Release版和Debug版的方法
- vc++同时生成 Release版和Debug版的方法
- 关于MFC的Debug版和Release版解析
- VC下Debug版和Release版的区别
- 百度地图 获取release版和debug版的签名
- [Android实例] 如何成为Android高手第一篇
- qsort用法
- VIM
- [Android实例] 如何成为Android高手第二篇
- [Android实例] 如何成为Android高手第三篇
- 书写Debug版和Release版的程序
- C++ 对象的内存布局
- 程序员需要具备的基本技能
- 招聘程序员
- varray: 灵活的数组结构与stl valarray的解构(1)
- links
- varray: 灵活的数组结构与stl valarray的解构(2)
- sqlserver启用xm_cmdshell
- sqlserver 重置自增Id