assert.h 是什么的头文件
来源:百度知道 编辑:UC知道 时间:2024/06/04 05:33:01
插入这个头文件是用来进行DEBUGGING的.
assert.h常用于防御式编程。断言(Assertions),一个断言通常是一个例程(routines)或者一个宏(marcos)。每个断言通常含有两个参数:一个布尔表示式(a boolean expression)和一个消息(a message)。
assert.h assert.h常用于防御式编程。
[1]断言(Assertions)
一个断言通常是一个例程(routines)或者一个宏(marcos)。每个断言通常含有两个参数:一个布尔表示式(a boolean expression)和一个消息(a message)。一个布尔表达式的反面表示了一个错误。C 标准库提供了一个 assert 宏,它只带有一个参数,用法如下:
assert(1 == 0); // 注意 boolean expression 不要加引号
使用 assert 宏,需要包含头文件 cassert 或者 assert.h,执行上面语句的结果是程序终止运行,输出与下面消息类似的消息:
Assertion failed: 1 == 0, file d:\我的文档\visual studio projects\learning\assert\assert.cpp, line 9
通常来说,我们会定义自己的 assert 宏,其目的有两个:
(1)新增参数,例如新增一个消息参数,使得 assert 宏输出更为丰富的信息。
(2)改变 assert 的行为内容。C 标准库中的 assert 宏将中断程序,实际上,我们可以让程序继续运行而不中断或者进入调试状态等,另外还可以控制消息输出的目标,即控制消息是输出到控制台还是文本文件,甚至是通过网络发出。
下面是一个 C++ 实现的断言:
#ifdef _DEBUG
#define Assert(exp, message) \
{ \
if (!(exp)) \
{ \