c++ supplement 程序调试

2018-01-19  本文已影响0人  sunsimple

在进行程序调试时,会用到assert(expr)预处理宏,常用于检查程序运行时“不允许”发生的条件,若expr的表达式值为0,则程序中断,反之则正常运行。预处理名字由预处理器而非编译器管理,因此在使用预处理名字时无须提供using声明。assert在cassert头文件中。


NDEBUG(非DEBUG)预处理变量,这是assert行为依赖的一个预处理变量的状态,若定义了NDEBUG,则assert将失效,默认状态是没有定义NDEBUG的。若想关闭调试状态,可以使用#define NDEBUG来关闭。也可以在为定义NDEBUG的情况下,不用assert进行调试,自行定义调试代码,如下图“

上面的调试信息是C++编译器定义的,_ _func_ _用于输出当前调试的函数名,其他的可见下图所示:


调试代码的过程是在代码开发的过程中使用,当准备发布时,则可定义NDEBUG进行关闭。

上一篇下一篇

猜你喜欢

热点阅读