断言机制2
来源:互联网 发布:mac ps批量处理图片 编辑:程序博客网 时间:2024/06/06 19:16
用STM官方库的时候,要进行API调用参数检测。这个功能可以用一个宏定义来开启或者关闭。
自己看
#ifdef USE_FULL_ASSERT
#define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
void assert_failed(uint8_t* file, uint32_t line);
#else
#define assert_param(expr) ((void)0)
#endif
你的问题是,没有打开的话,原先的API函数里面的校验功能为关闭
关闭就是assert_param(expr) 这个函数 定义为空函数
这是一种常见的软件技术,可以在调试阶段利用编译器的检验功能,帮助程序员始终选择有效的参数。
所谓有效的参数是指满足规定范围的参数,比如某个参数的取值范围只能是小于3的正整数,如果给出的参数大于3,则这个assert_param()可以在编译时报告错误,使程序员可以及时发现错误,而不必等到运行程序时,因为程序运行错误而大费周折。
它确实在程序的运行上牺牲了效率(但只是在调试阶段),但在项目的开发上却帮助你提高了效率。
当你的项目开发成功,使用release模式编译之后,所有的assert_param()检验都消失了,不会影响最终程序的运行效率。
0 0
- 断言机制2
- 断言机制
- Java -- 断言机制
- Java断言机制
- Java断言机制
- assertj断言机制记录
- 利用好断言机制
- Java断言机制
- Assert断言机制
- 断言2
- c++断言机制的应用
- Assert(断言实现机制剖析)
- Assert(断言实现机制剖析)
- Assert(断言实现机制剖析)
- 断言机制assert_param的使用
- 充分应用Watch window 和断言机制
- C/C++ 中的assert()宏 断言机制
- C++ Assert()断言机制原理以及使用
- 机器学习算法基础概念学习总结
- 编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)
- ztree v3.x 异步加载的简单用法
- C++ 高维指针数组 与 高维数组指针(二)
- 我的github小白之路
- 断言机制2
- java控制台打印三角形区域
- 并发和竞态
- 第五届蓝桥杯大赛个人赛(软件类)省赛真题-参考答案全(Java A组)
- 设计模式系列——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
- 批处理bat文件 解决 mongodb 详解 error:10061 由于目标计算机积极拒绝,无法连接
- [python] rdflib 4.2.0 安装
- 特征检测专题
- assert()函数的使用