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