C++之assert详解
来源:互联网 发布:java五子棋人机对战 编辑:程序博客网 时间:2024/06/01 08:01
①定义:
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:
#include <assert.h>void assert( int expression );
②作用
assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单test.c:
#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;}
③不足
已放弃使用assert()的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。在调试结束后,可以通过在包含#include <assert.h>的语句之前插入 #define NDEBUG 来禁用assert调用,示例代码如下:
#include <stdio.h>#define NDEBUG#include <assert.h>
④应用场景
ASSERT只有在Debug版本中才有效,如果编译为Release版本则被忽略。
阅读全文
0 0
- C关键字assert详解
- C++之assert详解
- C语言之ASSERT
- C语言之assert()
- C语言断言assert详解
- C语言之宏assert
- c库函数详解——assert
- 嵌入式 C/C++中ASSERT(0) 详解
- 杂记之C语言之库函数assert
- C语言-断言之assert()函数
- c语言之assert的使用
- linux c之assert函数使用总结
- C语言之assert的用法
- C语言标准库之 <assert.h>
- assert()详解
- assert详解
- C++ Assert
- [C-Library]assert.h - assert()
- 详解JESD204B串行接口时钟需求及其实现方法
- 使用jQuery设置disabled属性与移除disabled属性
- 关于统计今天、昨天、当前月份、上月数据的时间格式
- js中获取上下文路径的方法
- 摄像头常见参数解释
- C++之assert详解
- 可能你不知道,高薪程序员都在看这10个技术公众号
- 3行Python代码完成人脸识别
- 手慢无 | 为什么这个Linux运维班的学员被企业哄抢?
- 斜阳一抹
- VMware NAT网络模式
- Django Nginx Gunicorn Centos7 环境部署,将项目上线
- python读取.mat数据之scipy.io&h5py
- storm基础一