assert()函数的使用方法

来源:互联网 发布:主动网络防御技术 编辑:程序博客网 时间:2024/06/12 21:41

assert宏定义在<assert.h>中,

include <assert.h>void assert( int expression);
assert的作用是现计算expression表达式,如果其为假(0),就打引一条错误信息,并终止执行.

一个例子如下:

#include <stdio.h>#include <assert.h>#include <stdlib.h>int main( void ){       FILE *fp;           fp = fopen( "test.txt", "w" );//以可写的方式打开一个文件,如果不存在就创建一个同名文件       assert( fp );                           //所以这里不会出错       fclose( fp );           fp = fopen( "noexitfile.txt", "r" );//以只读的方式打开一个文件,如果不存在就打开文件失败       assert( fp );                           //所以这里出错       fclose( fp );                           //程序永远都执行不到这里来       return 0;}

用法总结:

(1)在函数开始处检查传入参数的合法性:

int resetBufferSize(int nNewSize){  //功能:改变缓冲区大小,  //参数:nNewSize 缓冲区新长度  //返回值:缓冲区当前长度   //说明:保持原信息内容不变     nNewSize<=0表示清除缓冲区  assert(nNewSize >= 0);  assert(nNewSize <= MAX_BUFFER_SIZE);  ...}

(2)每个assert只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败