断言(ASSERT)的用法
来源:互联网 发布:台北北投温泉攻略 知乎 编辑:程序博客网 时间:2024/04/27 04:03
1、与if比较
if与assert语句异曲同工
if(假设成立){ 程序正常运行;}else{ 报错&&终止程序!(避免由程序运行引起更大的错误) }但用assert可使程序开销小
2、举例
int resetBufferSize(int nNewSize) { //功能:改变缓冲区大小, //参数:nNewSize 缓冲区新长度 //返回值:缓冲区当前长度 //说明:保持原信息内容不变 nNewSize<=0表示清除缓冲区 assert(nNewSize >= 0); assert(nNewSize <= MAX_BUFFER_SIZE);若assert(expression)中expression为真,则继续运行,若为假,则报错并调用abort 来终止程序运行
3、注意事项
①在函数开始处检验传入参数的合法性(同举例)
②每个assert只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败
不好: assert(nOffset>=0 && nOffset+nSize<=m_nInfomationSize);
好: assert(nOffset >= 0);
assert(nOffset+nSize <= m_nInfomationSize);
③不能使用改变环境的语句,因为assert只在DEBUG个生效,如果这么做,会使用程序在真正运行时遇到问题
错误: assert(i++ < 100)
这是因为如果出错,比如在执行之前i=100,那么这条语句就不会执行,那么i++这条命令就没有执行。
正确: assert(i < 100)
i++;
0 0
- 断言(ASSERT)的用法
- 断言(Assert)的用法
- 断言ASSERT的用法
- assert()断言的用法
- assert() 断言的用法
- 断言(ASSERT)的用法
- 断言(ASSERT)的用法
- 断言(ASSERT)的用法
- 断言(ASSERT)的用法
- 断言(ASSERT)的用法
- 断言(ASSERT)的用法
- 断言(ASSERT)的用法
- 断言(ASSERT)的用法
- 断言(ASSERT)的用法
- 断言(ASSERT)的用法
- 断言(ASSERT)的用法
- 断言(ASSERT)的用法
- 断言(ASSERT)的用法
- xUtils 简介
- text-shadow
- UVA 10214 - Trees in a Wood.
- PHP 第七章
- chrome找不到模拟移动端
- 断言(ASSERT)的用法
- 软键盘的关闭和显示
- window.location.search.substring(1); 什么意思
- Linux CRONTAB记录
- POJ 2299 Ultra-QuickSort【求逆序数:归并排序|树状数组】
- 26个省会城市平均工资 各地收入相同购买力不同
- 疑难杂症
- EXTJS 动态更新的折线图
- Access Violation