C++ Primer 调试

使用于处理器进行调试

可使用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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值