C++ Primer 调试

来源:互联网 发布:网络一线牵 相逢即是缘 编辑:程序博客网 时间:2024/05/03 08:25

使用于处理器进行调试

可使用NDEBUG与处理器变量实现有条件的调试代码:

Int mian()

{

         #ifndef NDEBUG

         Cerr<<”staring main”<<endl;

         #endif

}

 

如果NDEBUG未定义,那么程序就会将信息写到cerr中。如果NDEBUG已经定义了,那么程序执行时就会跳过#ifndef#endif之间的代码。

默认情况下,NDEBUG未定义,这也意味着必须执行#ifndef#endif之间的代码。在开发程序的过程中,只要保持NDEBUG未定义,就会执行其中的调试语句。开发完成之后,要将程序交付客户时,可通过定义NDEBUG预处理变量,删除这些调试语句,大多数编译器提供定义NDEBUG的命令行选项:

$: CC –NDEBUG main.c

这也的命令行等效于在mian.c的开头提供#define NDEBUG预处理命令。

与处理器还定义了其余四种在调试时非常有用的常量

__FILE__文件名

__LINE__当前行号

__TIME__文件被编译的时间

__DATA__文件被编译的日期

可使用这些常量在错误信息中提供更多的信息。

 

另一个常见的调试技术是使用NDEBUG预处理变量以及assert(断言)预处理宏。程序员常用assert来测试不可能发生的条件。

 

0 0
原创粉丝点击