c++调试帮助(assert、NDEBUG)

来源:互联网 发布:淘宝时尚女装小衫 编辑:程序博客网 时间:2024/06/05 08:14

c++调试帮助(assert、NDEBUG)

assert
assert—-一种预处理宏, 定义在cassert头文件中。
用法:assert(expr)
即当expr表达式为假时, assert输出信息并终止陈程序的进行.反之,assert什么也不做。
注:包含了cassert头文件的程序中不能再定义名为assert的变量、函数或者其他实体。

NDEBUG—-一种预处理变量
用法:#define NDEBUG
即定义NDEBUG,关闭调试状态。程序默认状态写未定义NDEBUG,程序中的assert将执行运行时检查,若存在#ifndef 和#endif,会执行#ifdef和#endif之间的代码。反之,若定义了NDEBUG,以上两种代码将被忽略。

另外,c++编译器还定义了局部静态变量 _ func _(一个const char类型的数组),用于存放当前调试的函数的名字。
c++预处理器定义了4个用于调试的常量:
_ FILE _ : 存放文件名的字符串字面值
_ LINE _ : 存放当前行号的整型字面值
_ TIME _ : 存放文件编译时间的字符串字面值
_ DATE _ : 存放文件编译日期的字符串字面值

0 0
原创粉丝点击