通用预处理器宏assert()的用法

assert()是C语言标准库中提供的一个通用预处理器宏。在代码中常利用assert()来判断一个必需的前提条件,以便程序能够正确执行。例如,假定我们要读入一个文本文件,并对其中的词进行排序,必需的前提条件是文件名已经提供给我们了,这样我们才能打开这个文件。为了使用assert(),必须包含与之相关联的头文件:
#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;
使用C 头文件的#include 指示符:
#include <assert.h>
就可以直接在程序文本文件中使用名字assert(),而无需使用using指示符。
库文件厂商用名字空间来控制全局名字空间污染(即名字冲突)问题,以避免它们的库“污染”了用户程序的名字空间。

你可能感兴趣的:(冷知识)