assert.h 详解
assert.h
简介
assert.h 常用于防御式编程。防御式编程是提高软件质量技术的有益辅助手段。防御式编程的主要思想是:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误数据。这种思想是将可能出现的错误造成的影响控制在有限的范围内。
断言 assert 就是声明某种东西为真,该函数多用于调试。
宏函数
assert
原型:
void assert (int expression);
说明:aserrt 是一个宏而非函数,实际并不具有函数原型。当它被执行时,判断
expression
的真假,如果为假,它就向标准错误打印一条诊断信息并终止程序。当消除所有预期错误后,可以通过#define NDEBUG
消除所有断言。返回值:无。
实例:
#include <stdio.h>
#include <assert.h>//#define NDEBUG //定义后,预处理器将丢弃所有 assert 函数。void dialog(int *p){assert( p != NULL );printf("%d", *p);
}int main(){int a = 10;int *pa = NULL, *pb = NULL;pa = &a;dialog(pa);dialog(pb);return 0;
}
控制台会输出:
> Assertion failed: p != NULL, file c:\\...\\....\\...\test.c, line 9
assert.h 详解相关推荐
- ASSERT(0) 详解
ASSERT(0) 详解 1.使用方法 在开发过程中我们可以假设只要程序运行正确,某一条件肯定成立.若不成立,那么我们可以断言程序肯定出错.在这种情况下我们可要利用ASSERT来设定断 言.ASSE ...
- free -h 详解
1.命令 free -h 2.参数详解 total: 内存总数 used: 已经使用内存数 free: 完全空闲内存 shared: 多个进程共享的内存 buffers: 用于块设备数据缓冲,记录文件 ...
- C语言math.h详解
math.h常用函数详解 1. 取绝对值 double fabs(double a); 对a取绝对值 2.取整与取余 int ceil (double a); 取上整(里面可以填整数也能填小数,整数返 ...
- 断言ASSERT使用详解
一.assert的定义 原以为assert 仅仅是个报错函数,事实上,它居然是个宏,并且作用并非"报错"在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert() ...
- windows.h 详解
参考windows.h解构 刚开头的一段注释是对该头文件的描述: /*++ BUILD Version: 0001 Increment this if a change has global effe ...
- windows.h详解
参考 http://blog.csdn.net/fengningning/article/details/2306650?locationNum=1&fps=1 windows.h解构 刚开头 ...
- assert.notStrictEqual()详解
严格不相等测试,由不全等运算符确定(===). const assert = require('assert');assert.notStrictEqual(1, 2);// OKassert.not ...
- C/C++—— #include“stdafx.h”详解
转自:http://blog.csdn.net/qingkong8832/article/details/6695123 1,用VS2008新建项目,选择[Win32]-[Win32控制台应用程序]- ...
- CGGeometry.h详解
本文转载至:http://blog.csdn.net/chengyingzhilian/article/details/7894195 这些是在CGGeometry.h里的 CGPoint.CGSiz ...
最新文章
- 应用程序启动器 标记为信任_为什么您今天不能信任应用程序-以及如何解决它...
- 微信公众平台开发(102) 模板消息
- python3.6.8卸载_Mac 卸载 彻底删除 自己下载的 python 3
- 【机器学习】快速入门机器学习
- 如何绘制caffe网络训练曲线
- java调用百度推送详解_Java 以 Post 方式实现百度 Sitemap 实时推送
- leetcode429. N 叉树的层序遍历(层序遍历05)
- Artifact到底是什么
- Tomcat、JDK 历史版本下载地址
- 工作382-vant弹框不能直接用
- C#绘图工具之Move
- python列表元组_Python列表元组操作
- Linux 的字符串截取很有用。有八种方法。
- html 常用button事件
- java的json解析工具_json在java中的几种解析工具的使用
- 可以在手机预览ps设计稿的软件
- 双边滤波(Bilateral Filtering)
- 2021水利水电安全员考试每日一练单选题库
- java实现邮箱推送
- 从其他地方复制过来的文字中间有空格怎么删除?