assert.h 是什么的头文件

来源:百度知道 编辑:UC知道 时间:2024/06/04 05:33:01
在读别人的C程序时发现了这个头文件的声明,不知道是做什么的,有没有人可以指点一下,谢谢:)

插入这个头文件是用来进行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)) \
  { \