assert()是C语言标准库中提供的一个通用预处理器宏,在代码中常利用assert()来判断一个必需的前提条件以便程序能够正确执行。例如,假定我们要读入一个文本文件并对其中的词进行排序,必需的前提条件是文件名已经提供给我们了,这样我们才能打开这个文件。为了使用assert(),必须包含与之相关联的C头文件 #include <assert.h>。
下面是一个简单的使用示例
assert( filename != 0 );
assert()将测试filename不等于0的条件是否满足。这表示为了后面的程序能够正确执行,我们必须断言一个必需的前提条件。如果这个条件为假,即filename等于0,断言失败,则程序将输出诊断消息然后终止。 <assert.h>是C库头文件的C名,C++程序可以通过C库的C名字或C++名字来使用它。这个头文件的C++名字是<cassert>。C库头文件的C++名字总是以字母c开头,后面是去掉后缀.h的C名字。正如前面所解释的由于在各种C++实现中头文件的后缀各不相同,因此标准C++头文件没有指定后缀。使用头文件的C名字或者C++名字两种情况下头文件的#include预处理器指示符的效果也会不同。下面的#include指示符
#include <cassert>
将<cassert>的内容读入到我们的文本文件中。但是由于所有的C++库名字是在名字空间std中被定义的,因而在我们的程序文本文件中它们是不可见的,除非用下面的using指示符显式地使其可见
using namespace std;
文章转自:http://blog.sina.com.cn/s/blog_4cb7014101000730.html